我想在更新時檢查列值,如果它的匹配插入到另一個表中。 我的表:觸發條件的特定列
我的觸發器:
CREATE TRIGGER tr_test
ON test1
FOR UPDATE
AS
SET nocount ON
IF (Update(sname))
DECLARE @Name NVARCHAR
DECLARE @id INT
SET @[email protected]@IDENTITY
SET @Name=(SELECT sname
FROM test1
WHERE id = @id)
IF(@Name = 'Paras')
BEGIN
INSERT INTO test2
(loginfo)
VALUES ('success')
END
而且我的更新查詢:
update Test1 set Sname='Paras' where ID=1
當我運行此更新查詢什麼也不發生。 Test2
表是空的。我想問題是@@IDENTITY
但不確定。謝謝。
@@ IDENTITY:是一個系統函數ret甕最後插入的身份值.http://msdn.microsoft.com/en-us/library/ms187342.aspx –
哦,它的一個錯誤。所以我如何找到更新的列'ID'? –
另請注意,SQL Server中的觸發器在每個語句**中調用**(不是每行一次)。可以調用一次插入50行的「INSERT」語句。你需要處理這個事實 - 不要認爲你的觸發器只處理一行! –