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

SSMS 17.6存储过程语法错误及标量变量未声明问题求解

解决SSMS 17.6中存储过程创建的语法错误

咱们一步步来搞定你遇到的这两个问题:

第一个错误:incorrect syntax near as expecting variable

这个错误的根源很简单——你在最后一个参数@Weight INT后面多写了一个逗号。SQL Server解析参数列表时,会认为逗号后面还应该有下一个参数定义,结果紧接着遇到了AS,自然就抛出语法错误了。

第二个错误:Must declare the scalar variable

这个错误是第一个语法错误引发的连锁反应:因为存储过程的创建语句本身有语法问题,SQL Server没法正确解析你定义的参数,所以会误以为这些变量没被声明。只要修复第一个问题,这个报错也会自动消失。

修正后的完整代码

USE Stock
GO
CREATE PROCEDURE Add_Item
@Name VARCHAR(20),
@Section INT,
@Size INT,
@Grade INT,
@Weight INT  -- 去掉了末尾多余的逗号
AS
BEGIN  -- 建议加上BEGIN/END包裹逻辑,让代码结构更清晰
    INSERT INTO [Item] ([Name_Item], [ID_SectionType], [SectionSize_Item], [ID_Grade], [Weight])
    VALUES (@Name, @Section, @Size, @Grade, @Weight)
END
GO

额外小建议

  • 尽量用BEGIN和END把存储过程的逻辑代码包裹起来,后续如果要添加更多语句(比如错误处理、日志插入),代码结构会更清晰,也不容易出现语法问题。
  • 检查一下参数类型和目标表字段的类型是否完全匹配,比如@Name VARCHAR(20)要确保[Name_Item]字段的长度足够,避免插入时出现字符串截断的错误。

内容的提问来源于stack exchange,提问作者M.Bouabdallah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:27:24