存储结果来自exec(@sqlquery) [英] Store result from exec (@sqlquery)

查看:159
本文介绍了存储结果来自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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆