代码中的评论

Transact-SQL 支持两种形式的注释编写。数据库引擎会忽略注释,供人们阅读。

注释-- 开头,在遇到新行之前将被忽略:

-- This is a comment
SELECT *
FROM MyTable -- This is another comment
WHERE Id = 1;

斜线明星评论/*开头,以*/结束。这些分隔符之间的所有文本都被视为注释块。

/* This is
a multi-line
comment block. */
SELECT Id = 1, [Message] = 'First row'
UNION ALL
SELECT 2, 'Second row'
/* This is a one liner */
SELECT 'More';

如果 SQL 语句丢失了新的行字符,则斜杠明星注释的优点是可以保留注释。在故障排除期间捕获 SQL 时会发生这种情况。

斜线明星评论可以嵌套,并且斜线明星评论中的起始/*需要以*/结束才能生效。以下代码将导致错误

/*
SELECT *
FROM CommentTable
WHERE Comment = '/*'
*/

即使在引号内部,斜线明星也被视为评论的开始。因此,它需要以另一个收盘明星斜线结束。正确的方法是

/*
SELECT *
FROM CommentTable
WHERE Comment = '/*'
*/  */