SQL Server嵌套引号-如何使用?
在过去的一个小时里,我一直在寻找这个,但找不到任何可能的迹象 在Oracle中,可以以以下形式执行嵌套引号:SQL Server嵌套引号-如何使用?,sql,sql-server,quoting,Sql,Sql Server,Quoting,在过去的一个小时里,我一直在寻找这个,但找不到任何可能的迹象 在Oracle中,可以以以下形式执行嵌套引号: Set @variable = q'[ *big sql block here* ]' 这样,您就不必担心在动态/静态查询或诸如此类的查询中转义每个字符串和行 但是对于SQL Server,我已经搜索过了,唯一可用的选项似乎是双引号/撇号 有什么想法吗 如果之前有人问过我,请对此表示感谢和歉意-但使用我的搜索参数,我找不到任何关于此的信息(可能我只是没有使用正确的术语) SQL Ser
Set @variable = q'[ *big sql block here* ]'
这样,您就不必担心在动态/静态查询或诸如此类的查询中转义每个字符串和行
但是对于SQL Server,我已经搜索过了,唯一可用的选项似乎是双引号/撇号
有什么想法吗
如果之前有人问过我,请对此表示感谢和歉意-但使用我的搜索参数,我找不到任何关于此的信息(可能我只是没有使用正确的术语) SQL Server没有这样的扩展功能。它使用ANSI标准的双单引号机制
如果您正在创建动态SQL,则可以考虑使用参数而不是嵌入字符串。因此,不是:
set @sql = 'select this from that where foo = ''bar''';
exec(@sql);
使用:
这可能无法满足所有可能的需求,但它可以简化代码并使其更具可读性。SQL Server没有类似的扩展功能。它使用ANSI标准的双单引号机制
如果您正在创建动态SQL,则可以考虑使用参数而不是嵌入字符串。因此,不是:
set @sql = 'select this from that where foo = ''bar''';
exec(@sql);
使用:
这可能无法满足所有可能的需求,但它可以简化代码并使其更具可读性。我使用变量
将@p声明为char(1)set@p=''”
来解决这个问题,然后使用@p这是一种克服此限制的有趣方法。谢谢我使用变量将@p声明为char(1)集@p=''”
来解决这个问题,然后使用@p这是克服这个限制的一种有趣的方法。谢谢谢谢你的建议。我实际上是在用你建议的方法建造它。动态SQL实际上是在一个SP中,所以只要使用变量就会迫使我这样做。谢谢你的建议。我实际上是在用你建议的方法建造它。动态SQL实际上在SP中,因此仅使用变量就可以迫使我这样做。