存储结果来自exec(@sqlquery) [英] Store result from exec (@sqlquery)
本文介绍了存储结果来自exec(@sqlquery)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你好朋友......
我有以下查询。
声明 @ query varchar ( 500 )
set @ query = ' select * from openquery(abc,''select avg(value)from ihrawdata'')'
declare @ result varchar ( 20 )
exec ( @ query )
这段代码完美无缺。但当我试着跟随
set @ result = exec( @query )
它发出如下错误
exec附近语法无效。
plz help
解决方案
EXEC不返回值:所以你不能用它来获取一个值并存储它以供以后使用。
您需要使用sp_executesql: http://stackoverflow.com/questions/5439005/set-var -exec-storedprocedure [ ^ ]
看看是否要将exec值设置为declare变量,然后必须按以下方式使用sp_executesql
声明@query nvarchar(500)
声明@result varchar(20)
set @ query ='select @cnt =来自ihrawdata的平均值($)
- 将exec值设置为声明变量
EXECUTE sp_executesql @query,N'@ avg varchar(20)OUTPUT',@ avg = @ result OUTPUT
选择@result
exec不返回单个值,它返回表格格式数据,因此您无法将其存储到varchar类型变量
Hello friends...
I have following query.
declare @query varchar(500)
set @query='select * from openquery(abc,''select Avg(value) from ihrawdata'')'
declare @result varchar(20)
exec (@query)
this code is working perfectly. but when i tried following
set @result=exec(@query)
it issued an error as follows
invalid syntax near exec.
plz help
解决方案
EXEC does not return a value: so you cannot use it to "fetch" a value and store it for later.
You would need to use sp_executesql instead: http://stackoverflow.com/questions/5439005/set-var-exec-storedprocedure[^]
See if you want to set the exec value to your declare variable then you have to use sp_executesql on the following way
declare @query nvarchar(500) declare @result varchar(20) set @query=' select @cnt=Avg(value) from ihrawdata' --Set the exec value to your declare variable EXECUTE sp_executesql @query, N'@avg varchar(20) OUTPUT', @avg=@result OUTPUT Select @result
exec does not return a single value , it returns a tabular format data , so you can not store it into the varchar type variable
这篇关于存储结果来自exec(@sqlquery)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文