\ 在 sp_executesql 和 EXEC 中有什么特殊意义?
DECLARE @sql nvarchar(4000) = N'
DECLARE @i int = 1;
--\
WHILE @i > 0 SET @i = @i - 1;
SELECT @i;
';
EXEC sp_executesql @sql;
EXEC(@sql);
DECLARE @i int = 1;
--\
WHILE @i > 0 SET @i = @i - 1;
SELECT @i;
结果是(在 sp_executesql 和 EXEC 中,循环没有执行,神奇了,不要 \ 没有问题):
-----------
1
(1 行受影响)
-----------
1
(1 行受影响)
-----------
0
(1 行受影响)