線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1337
推到 Plurk!
推到 Facebook!

disable trigger

 
rexchiu
中階會員


發表:14
回覆:88
積分:70
註冊:2002-03-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-20 16:12:21 IP:61.230.xxx.xxx 未訂閱
alter table XXXX disable trigger triggername 為disable 該trigger alter table XXXX enable trigger triggername 為enable 該trigger Best Regards, Rex Chiu
------
Best Regards,
Rex Chiu
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-20 21:47:18 IP:218.32.xxx.xxx 未訂閱
感謝分享, 是否可註明一下何種資料庫.
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-20 22:51:46 IP:61.62.xxx.xxx 未訂閱
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 伺服器固定角色的成員,這些權限不可轉換。
系統時間:2024-09-12 10:25:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!