我試圖轉換SQL Server中的db2觸發器。我已經改變了一些東西,像NEWDOC和OLDDOC引用,並刪除了「THEN」關鍵字。SQL Server創建觸發器:關鍵字'IF'附近的語法不正確
我仍然得到這個錯誤:
Incorrect syntax near ';'.
Incorrect syntax near the keyword 'IF'.
的SQL是:
-- <ScriptOptions statementTerminator="!" />
CREATE TRIGGER DOCUMENTS_UPDATE ON DOCUMENTS_VIEW
INSTEAD OF UPDATE
AS
BEGIN
IF (select user_id from inserted) is null
UPDATE DOCUMENTS
SET id = (select id from inserted),
user_id = (SELECT id from users
where username = (select username from inserted)
),
code = (select code from inserted),
description = (select description from inserted),
type = (select type from inserted),
expiry = (select expiry from inserted),
parent_code = (select parent_code from inserted),
attributes = (select attributes from inserted),
acquired = (select acquired from inserted)
WHERE id = (select id from inserted);
ELSE
UPDATE DOCUMENTS
SET id = (select id from inserted),
user_id = (select user_id from inserted),
code = (select code from inserted),
description = (select description from inserted),
type = (select type from inserted),
expiry = (select expiry from inserted),
parent_code = (select parent_code from inserted),
attributes = (select attributes from inserted),
acquired = (select acquired from inserted)
WHERE id = (select id from inserted);
END IF;
UPDATE DOCUMENT_STATES
SET document_id = (select id from inserted),
state = (select state from inserted),
date = (select date from inserted),
timestamp = (select timestamp from inserted)
WHERE document_id = (select id from inserted);
IF NEWDOC.type = 'client_order'
UPDATE DOCUMENTS
SET parent_code = (select code from inserted)
WHERE code = (select parent_code from inserted);
END IF;
END!