如何从动态执行的查询中设置/获取/返回参数

时间:2010-08-26 17:55:03

标签: sql-server tsql

DECLARE @T INT
EXEC('SELECT @T = count(user_id) FROM ( .. .. .. )')
PRINT @T

我想这个例子足以解释我想要做什么,我创建动态查询并希望在exec语句之外访问它的计数。

我正在使用SQL 2000.如何实现?

1 个答案:

答案 0 :(得分:4)

您需要使用sp_executesql,它允许您传入和传出参数。 除了以下解决方案之外的主要内容是确保您确实需要动态SQL。

e.g。

DECLARE @SQL NVARCHAR(1000)
DECLARE @T INTEGER
SET @SQL = 'SELECT @T = COUNT(user_id) FROM ......'

EXECUTE sp_executesql @SQL, N'@T INTEGER OUT', @T OUT

PRINT @T