C# 从存储过程中的exec sp_executesql获取值
错误 必须声明标量变量 然后我用C# 从存储过程中的exec sp_executesql获取值,c#,sql-server,sql-server-2005,C#,Sql Server,Sql Server 2005,错误 必须声明标量变量 然后我用 declare @nopqty decimal(10,2) declare @ntotamt decimal(10,2) declare @npartno nvarchar(20) SET @Orgcd =101 SET @npartno = "A 0001 150" declare @qry nvarchar(4000) SET @qry = 'SELECT @nopqty = oqty' + convert(varchar(3), @norgcd) +
declare @nopqty decimal(10,2)
declare @ntotamt decimal(10,2)
declare @npartno nvarchar(20)
SET @Orgcd =101
SET @npartno = "A 0001 150"
declare @qry nvarchar(4000)
SET @qry = 'SELECT @nopqty = oqty' + convert(varchar(3), @norgcd) +
', @ntotamt = ocost' + convert(varchar(3), @norgcd) +
' FROM stock WHERE part = @npartno'
exec sp_executesql @qry
但是当打印@nopqty,@ntotamt时,它是空的
如何从这些@qry中取出@nopqty、@ntotamt
我需要这些值进行一些计算将参数指定为
输出
。例如:
exec sp_executesql @qry, N'@nopqty decimal(10,2),@ntotamt decimal(10,2),@npartno nvarchar(20)',@nopqty=@nopqty,@ntotamt=@ntotamt,@npartno=@npartno
@Orgcd未声明,并且不能使用双引号指定varchar,请使用撇号。除此之外,你能给我们看一下@qry吗?我忘了写那行声明为int
declare @name varchar(10)
exec sp_executesql
N'select top 1 @name = name from sys.tables',
N'@name varchar(10) output',
@name = @name output
print @name