You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure SQL Server创建存储过程遇SQL Error(102),求排查语法错误

问题排查与解决

嘿,这个问题其实一眼就能揪出根源——你的存储过程里UPDATE语句的语法写错了!

错误点对比分析

先看你报错的那段代码:

CREATE PROCEDURE sp_update_sync @sync_no varchar(50), @status INT AS BEGIN UPDATE dbo.table_sync SET sync_end_time = GETDATE() SET sync_status = @status WHERE sync_no = @sync_no END

这里你在UPDATE语句里连续写了两个SET关键字,这在SQL Server里是完全不符合语法规则的。而你能正常运行的存储过程,是在同一个SET下只更新单个字段,所以没有触发语法错误。

修正后的正确代码

当需要一次性更新多个字段时,必须在同一个SET子句里用逗号分隔各个字段的赋值操作,修正后的代码如下:

CREATE PROCEDURE sp_update_sync 
    @sync_no varchar(50), 
    @status INT 
AS 
BEGIN 
    UPDATE dbo.table_sync 
    SET sync_end_time = GETDATE(), -- 用逗号分隔多个字段的赋值
        sync_status = @status 
    WHERE sync_no = @sync_no 
END

报错原因解释

SQL Server解析UPDATE语句时,会认为第一个SET已经完成了字段更新的定义,紧接着出现的第二个SET就成了无意义的非法语法,所以会抛出“="附近语法不正确”的错误——它完全没预料到这里会突然出现第二个SET关键字。

这类小失误很容易在写紧凑的单行代码时忽略,把代码拆分成多行格式化后,就能更清晰地避免这类问题啦!

内容的提问来源于stack exchange,提问作者Saud Meethal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:54:50