每当我尝试在 SQL Server Management Studio 中对存储过程“修改”或使用“脚本”功能时,SP 中的每个单引号都会被双引号替换。每当我的任何同事使用 modify 或 script to 时,他们都会收到单引号中的输出。双引号会中断查询。它似乎是 SSMS 中的一个设置,但我找不到任何这样的设置。
任何意见,将不胜感激。
每当我尝试在 SQL Server Management Studio 中对存储过程“修改”或使用“脚本”功能时,SP 中的每个单引号都会被双引号替换。每当我的任何同事使用 modify 或 script to 时,他们都会收到单引号中的输出。双引号会中断查询。它似乎是 SSMS 中的一个设置,但我找不到任何这样的设置。
任何意见,将不胜感激。
我相信您从脚本选项中获得了动态 SQL,因为您选择了此选项:
工具 > 选项 > SQL Server 对象资源管理器 > 脚本 > 检查对象是否存在
启用此设置后,将生成如下脚本:
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = ...)
BEGIN
EXEC dbo.sp_executesql @statement = N'ALTER PROCEDURE...'
END
right-click > Modify
禁用此选项,使用或时应该正确right-click > Script stored procedure as > ALTER to >
。