SQL Server嵌套引号 - 如何?

时间:2018-03-14 14:52:35

标签: sql sql-server quoting

过去一小时我一直在寻找这个,但是没有找到任何可能的迹象。

在Oracle中,能够以以下形式执行嵌套引号:

Set @variable = q'[ *big sql block here* ]'

有了这个,您不必担心在动态/静态查询中转义每个字符串和行等。

但是对于SQL Server,我已经搜索过,唯一可用的选项似乎是双引号/撇号。

有什么想法吗?

欣赏它并道歉如果之前有人问过 - 但是使用我的搜索参数我找不到任何东西(也许我只是没有使用正确的行话)。

1 个答案:

答案 0 :(得分:4)

SQL Server没有这样的扩展功能。它使用双标准的ANSI标准机制。

如果要创建动态SQL,可以考虑使用参数而不是嵌入字符串。所以,而不是:

set @sql = 'select this from that where foo = ''bar''';

exec(@sql);

使用:

set @sql = 'select this from that where foo = @bar';
exec sp_executesql @sql, N'@bar varchar(255)', @bar='bar';

这可能无法满足所有可能的需求,但它可以简化您的代码并使其更具可读性。