我有一个具有以下基本结构的自动生成的 SQL 脚本:
/*
*/
PRINT 'Stuff'
GO
/*
*/
PRINT 'Other stuff'
问题是 SQL Server 似乎不喜欢将 block 注释放在 GO
之后。 Connect 上有一个错误(设置为不会修复,叹气)一个叫 Devi 的人发布了 some workarounds ,但它们并不真正适合我,因为我的脚本是自动生成的。
我可以在 GO
和 第二个 block 注释之后插入一些内容。然而,我在那里尝试了各种方法,但没有改变失败的结果,顺便说一句,这是有用的文本:
Msg 102, Level 15, State 1, Line 1 Incorrect syntax near ''.
我可以在 GO
和评论之间插入什么来避免这个错误吗?
最佳答案
您的问题似乎性质不同,有两点表明了这一点。
链接的 Connect 页面是关于
/* ... */
注释GO
在同一行之后,但在您的情况下,注释从 后面的行开始GO
。您提到的问题会产生此错误消息:
A fatal scripting error occurred. Incorrect syntax was encountered while parsing GO.
但你的不一样:
Msg 102, Level 15, State 1, Line 1 Incorrect syntax near ''.
我在这里猜测(但我希望并非不合理)您的脚本生成器使用 Mac 风格的换行符 (0x0D
) 而不是 Windows 风格的换行符 (0x0D0A
).我几乎能够使用 Mac 换行符重现该问题,但就我而言,错误与您的略有不同:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'GO'.
我还是建议您检查脚本生成器使用的换行符类型。
关于sql - 有没有办法在 SQL 中的 GO 之后使用 block 注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8798307/