2011-10-07 83 views
0

我正在编写一个针对MSSQL 2005服务器的Trans-SQL脚本,用于查询存在的每个数据库的文件路径。我能够列出系统中存在的数据库。但是,如何根据结果运行单独的查询?如何从另一个查询查询结果?

以下是使用命令(SELECT name from sys.databases)数据库列表输出:

name 
---- 
master 
tempdb 
model 
msdb 

现在我想借这个数据库的名称(如主,tempdb中),然后输入到另一个查询,即( exec sp_helpdb <database_name>)。

有什么想法?

回答

2

不直接回答你的问题,但如果你想运行每个分贝的查询,你可以使用sp_msforeachdb

sp_msforeachdb 'EXEC sp_helpdb [?]' 

否则,您将需要使用结果来生成您的SQL。

+0

你最接近答案!通过你给的链接找到我的答案。谢谢! –

0

您可以基于该查询构建游标,然后遍历结果,将它们填充到SQL变量中,然后使用该变量来执行您的存储过程。不幸的是我现在无法给你一个样本,但这是我接近它的方式。

+0

是的我一直在想使用一个循环,但这不像正常的脚本 –

-1

如果我理解正确的,你可以使用派生表的位置: -

选择素t database.name(你的查询)从 (SELECT name from sys.databases)数据库

相关问题