DECLARE @T INT
EXEC('SELECT @T = count(user_id) FROM ( .. .. .. )')
PRINT @T
我想这个例子足以解释我想要做什么,我创建动态查询并希望在exec语句之外访问它的计数。
我正在使用SQL 2000.如何实现?
答案 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