嘗試爲特定列創建觸發器,但只能獲得整個表才能工作的觸發器。爲高速列創建觸發器
Create Trigger Nameblock on tblcustomer
For Insert
As
Begin
rollback transaction
print 'Name edit not allowed!'
End
我想它,所以它只有一個更新客戶名稱做這在表
嘗試爲特定列創建觸發器,但只能獲得整個表才能工作的觸發器。爲高速列創建觸發器
Create Trigger Nameblock on tblcustomer
For Insert
As
Begin
rollback transaction
print 'Name edit not allowed!'
End
我想它,所以它只有一個更新客戶名稱做這在表
Create Trigger Nameblock on tblcustomer
For Update
As
if UPDATE(name)
Begin
rollback transaction
RAISERROR('Name edit not allowed!',16,1)
End
覆蓋點評論一欄,你可以使用下面的觸發也創造了扳機。
Create Trigger Nameblock on tblcustomer
INSTEAD OF UPDATE
As
Begin
UPDATE tblcustomer set phone=I.phone,address=I.adress
from INSERTED I inner join tblcustomer on (tblcustomer.id=I.id)
where I.name=tblcustomer.name
if UPDATE(name)
print 'Name edit not allowed!'
END
看起來你很近。添加IF UPDATE(客戶名稱)應該這樣做:
CREATE TRIGGER Nameblock ON tblcustomer
FOR UPDATE --change this to update instead of insert
AS
BEGIN
IF UPDATE (CustomerName) --Add this line to your query
BEGIN
rollback transaction
print 'Name edit not allowed!'
END
END
GO
[MySQL的觸發問題?:只有當一列被改變觸發]的
可能重複(http://stackoverflow.com/questions/4097949/mysql-trigger-只有問題觸發當列被更改) – Liron
我見過這個,但NEW和OLD命令似乎不適用於我。 – user2437672
這個觸發器不會在mysql上工作,更多的提供了一些關於你試圖實現的更多信息。 –