【发布时间】:2012-06-02 15:22:22
【问题描述】:
我有一个包含动态生成表的数据库。我正在编写一个存储过程来对生成的表执行查询,我需要在查询分析器工具(或类似工具)中查看结果。
我目前拥有的是:
DECLARE @TableName sysname
DECLARE TableNameCursor CURSOR FOR
SELECT TableName FROM [xxxTables] WHERE xxx...
OPEN TableNameCursor
FETCH NEXT FROM TableNameCursor INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @Query nvarchar
SET @Query = 'SELECT * FROM ' + @TableName
EXEC sp_executesql @Query
-- This is executed as long as the previous fetch succeeds.
FETCH NEXT FROM TableNameCursor INTO @TableName
END
但由于我有多个选择,我没有得到输出。如何修复存储过程以显示结果?
所有表格的布局都相同,所以我可以加入它们。
【问题讨论】:
-
'所有表格的布局都相同,所以我可以加入它们。' - 你真的是说 UNION他们?
-
我的意思是我可以将输出创建为单个表
-
好的。你到底在哪里没有得到输出(我的意思是,它是在客户端应用程序中还是在另一个存储过程中,或者......)? SP 是如何调用的?
-
我直接在查询分析器上调用该过程,我根本没有得到任何输出。
-
糟糕,您确实在问题中提到了查询分析器,但我错过了,抱歉。也许,查询分析器不支持显示单个存储过程返回的多个结果集。如果该过程确实产生了多个结果,我相信如果您在 SSMS 查询窗口中运行 SP,您将能够看到它们。不过,我不确定您是否认为该工具相似。
标签: sql-server tsql stored-procedures join