SQL 服务器嵌套引号 - 怎么办?

SQL Server nested quotes - how to?

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

在 Oracle 中,可以使用以下形式进行嵌套引号:

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

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

但是对于 SQL 服务器,我搜索过并且唯一可用的选项似乎是双 quotation/apostrophe。

有什么想法吗?

非常感谢,如果之前有人问过这个问题,我深表歉意 - 但使用我的搜索参数我找不到任何关于这个的东西(也许我只是没有使用正确的行话)。

SQL服务器没有这样的扩展功能。它使用双单引号的 ANSI-standard 机制。

如果您正在创建动态 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';

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