我有一个自动生成的SQL脚本,它的基本结构是:
/*
*/
PRINT 'Stuff'
GO
/*
*/
PRINT 'Other stuff'
问题是SQL Server似乎不喜欢将块注释放在GO
之后。Connect上有一个错误(设置为"不会虚构",叹气),一个叫Devi的家伙发布了一些解决方案,但它们对我来说并不适用,因为我的脚本是自动生成的。
我可以在GO
的之后插入,在第二个块注释的之前插入。然而,我在那里尝试了各种各样的东西,但没有改变失败的结果,fwiw,这是一个有用的文本:
消息102,级别15,状态1,第1行"附近的语法不正确。
在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'.
尽管如此,我还是建议您检查脚本生成器使用的换行符。