含GO语句的ALTER TABLE脚本触发语法错误求助
问题解决思路
问题重现
执行以下T-SQL脚本时触发语法错误:
alter table t alter column c int GO
错误信息:
Incorrect syntax near 'GO'.
环境:SQL Server 2016/2019,SSMS交互式运行,表存在与否不影响此错误,添加/移除分号无效,但SELECT语句后加GO可正常执行。
可行解决方案
- 确保GO单独占一行且无特殊字符:GO是SSMS的批处理分隔符(不属于T-SQL语法),必须单独占据一行。检查GO前后是否存在全角空格、制表符或其他不可见特殊字符,这类字符会导致SSMS无法识别批处理分隔符。
- 规范语法格式:尝试给ALTER语句添加分号,保持GO单独成行,脚本如下:
ALTER TABLE t ALTER COLUMN c INT; GO
- 检查SSMS批处理分隔符设置:打开SSMS的「工具」->「选项」->「查询执行」->「SQL Server」->「高级」,确认「批处理分隔符」设置为
GO,若被修改为其他值,改回默认即可。 - 重置查询环境:新建一个查询窗口重新执行脚本,或直接重启SSMS,避免窗口缓存异常导致的识别问题。
内容的提问来源于stack exchange,提问作者paolov
相关产品推荐
相关产品推荐

