lee*_*rog 4 sql sql-server stored-procedures dynamic-sql
在存储过程 (A) 中,我需要在特定数据库中调用存储过程 (X) 并捕获输出。X 返回单个值。
据我所知,我需要将 X 的数据库名称提供给 A 中的存储过程,并且我需要使用动态 SQL 来构建针对所需数据库的执行查询。
我无法弄清楚的是如何从 A 中的 X 捕获输出以处理结果。
您可以使用sp_executesql动态调用嵌套的存储过程。
DECLARE @db AS SYSNAME
DECLARE @return_value AS INT
DECLARE @output_value AS INT
DECLARE @sql AS NVARCHAR(MAX)
-- Set your DB name
SET @db = N'mydb'
/*
Use sp_executesql to dynamically pass in the db and stored procedure
to execute while also defining the values and assigning to local variables.
*/
SET @sql = N'EXEC @rtn = ' + @db + '.dbo.[your_stored_procedure] @output OUTPUT'
EXEC sp_executesql @sql
, N'@rtn AS INT, @output AS INT OUTPUT'
, @return_value = @rtn
, @output_value = @output OUTPUT
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10041 次 |
| 最近记录: |