sql - 有没有办法在 SQL 中的 GO 之后使用 block 注释?

标签 sql sql-server-2008

我有一个具有以下基本结构的自动生成的 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 和评论之间插入什么来避免这个错误吗?

最佳答案

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

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

我还是建议您检查脚本生成器使用的换行符类型。

关于sql - 有没有办法在 SQL 中的 GO 之后使用 block 注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8798307/

相关文章:

sql - Linux 进程事件

sql - 旋转 1300 万条记录时,tempDB 在 SQL Server 中已满,旋转需要超过 28 小时

mysql - 根据表中匹配的 ID 选择不同的电子邮件

sql - SQL 中垂直联合列

sql-server-2008 - SQL Server 触发器可以向我发送电子邮件吗?

sql - 全文搜索目录名称

SQL Server - 使用 LIKE 子句搜索包含国际字符的字符串

sql - 如何自动更改月份输入

sql - T-SQL 优化删除多条记录

c# - 通过从数据库加载数据创建 Gridview 列标题