2017-05-03 105 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

相關問題