[英]Update Trigger in SQL Server 2008
我是 SQL 服務器的新手
我必須為更新創建觸發器
CREATE TRIGGER on_update
ON [GP].[dbo].[TABLE1]
AFTER UPDATE
AS
DECLARE @PKCOL1 int
DECLARE @COL2 int
DECLARE @COL3 nvarchar(36)
DECLARE @COL4 nvarchar(36)
DECLARE @COL5 nvarchar(126)
DECLARE @COL6 datetime
DECLARE @COL7 datetime
BEGIN
SELECT @PKCOL1 = [COL-A],
@COL2 = [COL-B],
@COl3 = NULL,
@COL4 = [COL-C],
@COL5 = [COL-D],
@COL6 = [COL-E]
FROM INSERTED
UPDATE [dbo].[TABLE2]
SET [COL2] = @COL2,
[COL3] = @COL3,
[COL4] = @COL4,
[COL5] = @COL5
WHERE COL2 = @PKCOL1
我收到 where contition 的語法錯誤。
@PKCOL1 附近的語法不正確。
任何人都可以幫助我嗎...
首先,答案可能是因為您的 BEGIN 沒有匹配的 END 語句。
其次,這更重要 - 您的觸發器假設一次只會更新一行。 觸發器每次操作只觸發一次,並且可以更新許多行(即,INSERTED 表有多個行)。 在您的代碼中,您僅從 INSERTED 檢索單行並使用該行中的值更新 TABLE2。 你最好做這樣的事情:
UPDATE Table2 SET
[Col2] = i.[Col-B]
, [Col3] = NULL
, [Col4] = i.[Col-C]
, [Col5] = i.[Col-D]
FROM Table2
JOIN INSERTED i ON Table2.Col2 = i.[Col-A]
(未經測試的代碼警告)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.