gpt4 book ai didi

sql - sp_executesql 和表输出

转载 作者:行者123 更新时间:2023-12-04 10:52:34 30 4
gpt4 key购买 nike

我正在 SQL Server 2005 中编写一个存储过程,在给定的时间点我需要执行另一个存储过程。这个调用是动态的,所以我像往常一样使用了 sp_executesql 命令:

DECLARE @DBName varchar(255) 
DECLARE @q varchar(max)
DECLARE @tempTable table(myParam1 int, -- other params)

SET @DBName = 'my_db_name'
SET q = 'insert into @tempTable exec ['+@DBName+'].[dbo].[my_procedure]'
EXEC sp_executesql @q, '@tempTable table OUTPUT', @tempTable OUTPUT

SELECT * FROM @tempTable

但我收到此错误:

Must declare the scalar variable "@tempTable".



如您所见,变量已声明。我已阅读 documentation并且似乎只允许使用的参数是 text、ntext 和 image。我怎样才能得到我需要的东西?

PS:我找到了许多适用于 2008 和更高版本的提示,任何适用于 2005 的提示。

最佳答案

已解决,感谢大家的提示:

DECLARE @DBName varchar(255) 
DECLARE @q varchar(max)
CREATE table #tempTable(myParam1 int, -- other params)

SET @DBName = 'my_db_name'
SET @q = 'insert into #tempTable exec ['+@DBName+'].[dbo].[my_procedure]'
EXEC(@q)

SELECT * FROM #tempTable
drop table #tempTable

关于sql - sp_executesql 和表输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18515258/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com