在SQL中使用GO后有没有办法使用块注释?

时间:2012-01-10 03:47:04

标签: sql sql-server-2008

我有一个自动生成的SQL脚本,具有以下基本结构:

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

问题是,当SQL Server放在GO之后,它似乎不喜欢阻止注释。在Connect上设置了一个错误(设置为不会修复,叹气),而一个名为Devi的人发布了some workarounds,但它们并不适合我,因为我的脚本是自动的生成。

我可以在 {/ 1}}和之前插入 第二个块注释。我已经尝试了各种各样的东西,然而,没有改变失败的结果,fwiw,这是有用的文本:

  

消息102,级别15,状态1,行1''。

附近的语法不正确

我可以在GO和评论之间留下什么来避免这个错误吗?

1 个答案:

答案 0 :(得分:4)

你的问题似乎有不同的性质,有两点可以解释。

  1. 关联的Connect页面与/* ... */ 在同一行之后的GO评论约为GO,但在您的情况下,评论在上开始后面的行 A fatal scripting error occurred. Incorrect syntax was encountered while parsing GO.

  2. 您提到的问题会产生以下错误消息:

    Msg 102, Level 15, State 1, Line 1
    Incorrect syntax near ''.
    

    但你的不同:

    0x0D
  3. 我猜这里(但不是不合理,我希望)您的脚本生成器使用Mac样式换行符(0x0D0A)而不是Windows样式换行符(Msg 102, Level 15, State 1, Line 1 Incorrect syntax near 'GO'. )。我几乎可以使用Mac换行符重现这个问题,但在我的情况下,错误与你的错误略有不同:

    {{1}}

    对我来说,建议你检查脚本生成器使用的是什么类型的换行符似乎已经足够接近了。