使用查询的返回值设置变量

时间:2011-05-05 12:40:47

标签: sql-server-2005 tsql stored-procedures

嗨,我的商店程序中有这样的东西,

SET @SQl = 'Some query' --this query return only a cell the type int
SET @VAR = exec(@SQL) --the varaible @var it's local and the type int

如何获取查询的返回值并设置为变量,这可能吗?或者我在做什么是错的???

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

如果查询返回标量结果集,则需要执行

DECLARE @VAR INT

DECLARE @Result TABLE
(
C INT
)

DECLARE @SQl NVARCHAR(MAX)
SET @SQl = 'SELECT 1'

INSERT INTO @Result
EXEC(@SQl)

SELECT @VAR = C FROM @Result

使用sp_executesqlOUTPUT参数

会好得多
DECLARE @VAR INT

DECLARE @SQl NVARCHAR(MAX)
SET @SQl = 'SELECT @out = 1'

EXEC sp_executesql @SQl, N'@out int output', @out = @VAR OUTPUT

SELECT @VAR