SSMS执行CREATE OR ALTER后,CREATE与PROCEDURE间空格过多问题求助
存储过程脚本生成多余空格问题
我有一个存储过程,最初将其脚本生成为CREATE时显示正常:
CREATE PROCEDURE [ProcedureName];但在执行CREATE OR ALTER PROCEDURE [ProcedureName]后,再次生成脚本时变为CREATE PROCEDURE [ProcedureName],多出了两个空格,导致架构对比工具将其识别为差异。这是否是SSMS的配置问题?有人遇到过类似情况吗?
问题解答
- 这是不少SQL Server开发者都碰到过的情况,不是SSMS的配置问题,而是SSMS内置脚本生成引擎在解析通过
CREATE OR ALTER创建的存储过程元数据时,存在的小格式处理bug。 - 实用解决办法:
- 调整架构对比工具的设置,开启「忽略空白字符差异」的选项(主流工具如SQL Compare、Azure Data Studio架构对比插件都支持这个配置),从根源上规避这类无意义差异被识别。
- 如果需要严格保持脚本格式一致,可以手动修正多余空格,或者改用sqlcmd命令行工具、PowerShell的SqlServer模块生成脚本,这类工具的格式处理更稳定,不会出现多余空格问题。
- 目前官方暂无针对该问题的SSMS补丁,优先通过工具配置或替换脚本生成方式来解决即可。
内容的提问来源于stack exchange,提问作者DimityrU
相关产品推荐
相关产品推荐

