在SQL Server关键字'选择'附近的语法不正确
问题描述:
我想创建一个触发器,根据插入另一个表中的值来减少书的数量。我使用下面的代码在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 ')'
答
如果您需要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
我收到错误:';'附近的语法不正确; – Hen
@Hen更新了我的答案。在'UPDATE'后面添加'END' – Lamak
非常感谢您的帮助 – Hen