2017-05-03 100 views
0

我想创建一个触发器,根据插入另一个表中的值来减少书的数量。我使用下面的代码在SQL Server关键字'选择'附近的语法不正确

CREATE TRIGGER updateStock 
ON dbo.command 
AFTER INSERT 
AS 
BEGIN 
    UPDATE dbo.book 
    SET number = number - (SELECT quant FROM inserted) 
    WHERE NLIV = SELECT NLIV FROM inserted 

但我收到此错误:

Incorrect syntax near the keyword 'SELECT'. Incorrect syntax near ')'

回答

3

如果您需要join与另一个表这不是一个UPDATE正确的语法。请尝试以下操作:

CREATE TRIGGER updateStock 
ON dbo.command 
AFTER INSERT 
AS 
BEGIN 

UPDATE b 
SET b.number = b.number - i.quant 
FROM dbo.book b 
INNER JOIN INSERTED i 
    ON b.NLIV = i.NLIV; 

END 
+0

我收到错误:';'附近的语法不正确; – Hen

+0

@Hen更新了我的答案。在'UPDATE'后面添加'END' – Lamak

+0

非常感谢您的帮助 – Hen

相关问题