Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server嵌套引号-如何使用?_Sql_Sql Server_Quoting - Fatal编程技术网

SQL Server嵌套引号-如何使用?

SQL Server嵌套引号-如何使用?,sql,sql-server,quoting,Sql,Sql Server,Quoting,在过去的一个小时里,我一直在寻找这个,但找不到任何可能的迹象 在Oracle中,可以以以下形式执行嵌套引号: Set @variable = q'[ *big sql block here* ]' 这样,您就不必担心在动态/静态查询或诸如此类的查询中转义每个字符串和行 但是对于SQL Server,我已经搜索过了,唯一可用的选项似乎是双引号/撇号 有什么想法吗 如果之前有人问过我,请对此表示感谢和歉意-但使用我的搜索参数,我找不到任何关于此的信息(可能我只是没有使用正确的术语) SQL Ser

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

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

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中,因此仅使用变量就可以迫使我这样做。