【发布时间】:2015-02-20 08:05:39
【问题描述】:
我正在运行 SSMS 12.0.2000.8
如果我使用 SSMS 查询编辑器创建一个存储过程(如下面的那个),当我执行/保存它时,BEGIN 之前的 cmets 会被删除:
CREATE PROCEDURE myproc
/* Say goodbye to this comment */
@var1 int -- this comment will disappear too
AS
BEGIN
/* This comment is safe */
select 'hello' -- this too shall endure
END
一位同事正在运行相同版本的 SSMS,但没有出现此类问题。如果我使用sqlcmd.exe 执行他的一个脚本,那么 cmets 也会被剥离。我认为必须有一个全局设置需要更改,但我不知道它可能在哪里。
【问题讨论】:
-
“然后编写脚本”是什么意思。您是否使用管理工作室将其从数据库中取出?您可能需要检查很多设置。
-
我不知道我为什么要写“脚本它”——一定是周五下午的大脑放屁。我在 SSMS 查询编辑器中创建 SP,并使用 Script Stored Procedure As... 查看结果。
-
你检查过所有相关的选项吗?默认情况下,它会遗漏很多东西。现在无法访问 SSMS,所以我无法检查是否也存在。
-
您的同事是否使用完全相同的数据库并创建完全相同的程序?有些东西可以修改传输中的语句(如 DDL 触发器)。对于它的价值,我无法使用 SSMS 12.0.2456.0 重现它,而且我确实会感到非常惊讶,因为它只需要按原样执行我的命令,而不是以有趣的方式将其分解。如果一切都失败了,请尝试探查器跟踪以验证正确的命令已发送到 SQL Server。
-
@JamesZ 我不确定您指的是哪个特定选项,但我已经浏览了 SSMS 中的几乎每个菜单项,但到目前为止一无所获。
标签: sql-server stored-procedures ssms