2015-11-11 21 views
0

我想创建一个动态查询程序类似这样从SQL Server中的EXECUTE语句获取参数?

set @x = @query + CAST(@year AS varchar(10)) + ' and ' + @attribute + @operator +''''+ @value+'''' 
execute (@x) 

现在我想从执行语句获取价值,但

select * from execute(@x) 

不起作用!请帮我

+1

我想'执行(@x)'是不够好孤单,如果动态查询是正确的航向,它的工作的 –

+0

,但我不希望这样的结果,我想转换结果出头,我需要。例如执行(@x)返回几何类型,并希望通过STAstext() – Ihenry

回答

0

你应该申报,您将使用从动态查询获得的价值和使用executesql执行查询的一个变量。

喜欢的东西:

declare @x int 
declare @sql nvarchar(max) = N'SELECT @x = SomeColumn FROM SomeTable' 
exec sp_executesql @sql, N'@x int out', @x out 
select @x 
+0

好的,谢谢转换为nvarchar(),但是,当它返回多发性值? – Ihenry

+0

等效将是一个表变量,但你不能改变它的动态SQL,我想。 – Szymon

+0

我有一个问题,我如何使用光标与sp_executesql?或者使用不同的方法可以执行字符串sql来使用游标。拒绝我的坏英语 – Ihenry

相关问题