Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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 SP_EXECUTESQL_Sql_Sql Server 2008 - Fatal编程技术网

Sql Server SP_EXECUTESQL

Sql Server SP_EXECUTESQL,sql,sql-server-2008,Sql,Sql Server 2008,我正在尝试使用sp_executesql,但我有一个特定的问题,尽管我进行了研究,但我找到了一个可能的解决方案 在SQL脚本的某些部分中,我有以下语句: EXECUTE sp_executesql           @sql_troca,           N '@CD_ITEM char(7)',           @cd_item = @cd_item 它是有效的 但与参数一致 @cd_item = @cd_item 我想动态构建,已经有这样的战略声明: EXECUTE s

我正在尝试使用sp_executesql,但我有一个特定的问题,尽管我进行了研究,但我找到了一个可能的解决方案

在SQL脚本的某些部分中,我有以下语句:

EXECUTE sp_executesql 
          @sql_troca, 
          N '@CD_ITEM char(7)', 
          @cd_item = @cd_item
它是有效的

但与参数一致

@cd_item = @cd_item 
我想动态构建,已经有这样的战略声明:

EXECUTE sp_executesql 
          @sql_troca, 
          N '@CD_ITEM char(7)', 
          N ' @cd_item = @cd_item '
但在运行时,会显示一个错误:

参数化查询@CD_ITEM char(7)


如何将参数作为字符串传递?或者确实不可能

您的代码试图将文本字符串
'@cd\u item=@cd\u item'
作为第一个参数的值传递。第一个参数被定义为
char(7)
,您试图向它传递一个20个字符的字符串,这就是为什么会收到错误消息的原因

但是,将参数长度增加到20并不能解决问题;当您实际想要传递局部变量的值时,您将只传递文本字符串作为第一个参数的值


无法将参数作为字符串传递。这不是工作原理

这不是全部的错误信息。。。。请发布您所发现的完整准确的错误。。我理解。。。有没有别的办法让我绕过这件事?尝试使用exec(@sql)所有表单,但没有成功。正如您所理解的,我在运行时构建所有内容。所以我想有一个能处理字符串类型的解决方案。@JoséLuiz:我没见过。您只需将所有参数传递给
sp_executesql
,无论查询是否使用它们。