我试图转换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!