T-SQL 注释你注意了吗?

作者:vkvi 来源:千一网络(原创) 日期:2007-4-20

SQL 注释 一文中指出了 T-SQL 的注释字符,但没有作出使用注意,致使一些注释符变得无效。

  • --(双连字符),单行注释。
  • /* ... */(正斜杠-星号对),多行注释。
  • --(双连字符),SQL-92标准。
  • /* ... */(正斜杠-星号对),T-SQL标准。
  • --(双连字符),注释长度无限制。
  • /* ... */(正斜杠-星号对),注释长度无限制。
  • --(双连字符),不能以 GO 开头?
  • /* ... */(正斜杠-星号对),不能以 GO 开头?

有争议的是最后一点,不能以 GO 开头?(T-SQL 中的 GO 是什么意思?)SQL Server 联机丛书上的原话是:在注释中包含 GO 命令会生成一个错误信息。而后又作了补充:当实用工具在一行的前两个字节中读到字符 GO 时,则把从上一 GO 命令开始的所有代码作为一个批处理发送到服务器。

很明显在“--”注释符中,注释中的 GO 字符不可能出现在一行的前两个字符,因为注释总是以“--”开头。

而“/*...*/”注释中,则的确不能以 GO 开头,比如:

/*
select
GO
*/

在查询分析器中就会出现类似如下错误:

服务器: 消息 113,级别 15,状态 1,行 1
缺少注释的结尾标记 '*/'。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '*' 附近有语法错误。

不过有三点同样应该注意:

  • GO 忽略大小写的。
  • 查询分析器会忽略一行语句前端的英文空格,也就是说“  GO”和“GO”是一样的。
  • 开头不能含 GO 仅限于 SQL 查询分析器、osql 和 isql,不包括 SQL Server。

你前面那位网友看了:PHP 实用教程-验证过滤

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
标题:必填
内容:
本站永远终止与捏造“罪名”不支付广告费的某度联盟合作。
vkvi
vkvi

作者简介: vkvi,致力于 .NET Web 开发、移动开发的技术推广,在 .NET、SQL Server、Windows Server 等方面有深入研究和丰富经验,10 年间共计撰写文章 4000 余篇。 主持金融、国土、农业、电商等多个行业项目执行, 推行“技术提升生产力、人心决定成功率”的管理理论。 联系他