disable trigger |
|
rexchiu
中階會員 ![]() ![]() ![]() 發表:14 回覆:88 積分:70 註冊:2002-03-17 發送簡訊給我 |
|
Mickey
版主 ![]() ![]() ![]() ![]() ![]() 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
|
timhuang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
Hi, 弟來補充一下, 在 MSSQL 中是可以使用的, 使用方式如 rexchiu 兄所言.
節錄一段 online help 中的範例:
本範例使用 ALTER TABLE 的 DISABLE TRIGGER 選項來停用觸發程序,並允許插入通常違反觸發程序的值。然後使用 ENABLE TRIGGER 重新啟用觸發程序。 CREATE TABLE trig_example (id INT, name VARCHAR(10), salary MONEY) go -- Create the trigger. CREATE TRIGGER trig1 ON trig_example FOR INSERT as IF (SELECT COUNT(*) FROM INSERTED WHERE salary > 100000) > 0 BEGIN print "TRIG1 Error: you attempted to insert a salary > $100,000" ROLLBACK TRANSACTION END GO -- Attempt an insert that violates the trigger. INSERT INTO trig_example VALUES (1,"Pat Smith",100001) GO -- Disable the trigger. ALTER TABLE trig_example DISABLE TRIGGER trig1 GO -- Attempt an insert that would normally violate the trigger INSERT INTO trig_example VALUES (2,"Chuck Jones",100001) GO -- Re-enable the trigger. ALTER TABLE trig_example ENABLE TRIGGER trig1 GO -- Attempt an insert that violates the trigger. INSERT INTO trig_example VALUES (3,"Mary Booth",100001) GO另外要注意的是, 可以進行這種操作的權限, 預設為: ALTER TABLE 權限預設屬於資料表擁有者、系統管理員 (sysadmin) 伺服器固定角色的成員、以及 db_owner 和 db_ddladmin 伺服器固定角色的成員,這些權限不可轉換。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |