【问题标题】:Incorrect syntax near the keyword 'select' in SQL ServerSQL Server 中关键字“select”附近的语法不正确
【发布时间】:2017-05-03 14:57:15
【问题描述】:

我正在尝试创建一个触发器,该触发器根据插入到另一个表中的值来减少书籍的数量。我正在使用以下代码

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 

但我收到此错误:

关键字“SELECT”附近的语法不正确。 ')' 附近的语法不正确

【问题讨论】:

    标签: sql sql-server syntax


    【解决方案1】:

    如果您需要 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 更新了我的答案。在UPDATE之后添加END
    猜你喜欢
    • 1970-01-01
    • 2018-08-02
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 2013-12-04
    相关资源
    最近更新 更多