代码之家  ›  专栏  ›  技术社区  ›  Anil Namde

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

  •  2
  • Anil Namde  · 技术社区  · 14 年前
    DECLARE @T INT
    EXEC('SELECT @T = count(user_id) FROM ( .. .. .. )')
    PRINT @T
    

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

    我正在使用SQL 2000。如何实现这一目标?

    1 回复  |  直到 14 年前
        1
  •  4
  •   AdaTheDev    14 年前

    你需要使用 sp_executesql 它允许您传入和传出参数。 除了下面的解决方案,主要的事情是确保您确实需要动态SQL。

    例如

    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