有没有一种方法可以在SQL中的GO之后使用块注释



我有一个自动生成的SQL脚本,它的基本结构是:

/*
*/
PRINT 'Stuff'
GO
/*
*/
PRINT 'Other stuff'

问题是SQL Server似乎不喜欢将块注释放在GO之后。Connect上有一个错误(设置为"不会虚构",叹气),一个叫Devi的家伙发布了一些解决方案,但它们对我来说并不适用,因为我的脚本是自动生成的。

我可以在GO的之后插入,在第二个块注释的之前插入。然而,我在那里尝试了各种各样的东西,但没有改变失败的结果,fwiw,这是一个有用的文本:

消息102,级别15,状态1,第1行"附近的语法不正确。

GO和注释之间有什么可以避免的吗?

您的问题似乎具有不同的性质,有两件事表明了这一点。

  1. 链接的Connect页面是关于GO之后的/* ... */注释,位于与其相同的行上,但在您的情况下,注释从GO之后的行开始。

  2. 您所暗示的问题会产生以下错误消息:

    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'.

尽管如此,我还是建议您检查脚本生成器使用的换行符。

最新更新