Sql 如何从另一个查询查询结果?

Sql 如何从另一个查询查询结果?,sql,sql-server,sql-server-2005,tsql,dynamic-sql,Sql,Sql Server,Sql Server 2005,Tsql,Dynamic Sql,我正在针对MSSQL 2005服务器编写一个Trans-SQL脚本,该服务器打算查询每个数据库的文件路径。我能够列出系统中存在的数据库。但是如何基于结果运行单独的查询呢 以下是使用命令SELECT name from sys.databases从数据库列表中输出的结果: 现在,我想将这个数据库命名为master、tempdb,并输入另一个查询,即exec sp_helpdb 有什么想法吗?您可以基于该查询构建一个游标,然后循环遍历结果,将结果填充到SQL变量中,然后使用该变量执行存储过程。不幸的

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

以下是使用命令SELECT name from sys.databases从数据库列表中输出的结果:

现在,我想将这个数据库命名为master、tempdb,并输入另一个查询,即exec sp_helpdb


有什么想法吗?

您可以基于该查询构建一个游标,然后循环遍历结果,将结果填充到SQL变量中,然后使用该变量执行存储过程。不幸的是,我现在不能给您一个示例,但这是我的方法。

不直接回答您的问题,但是如果您想对每个数据库运行查询,您可以使用


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

通常,您的问题的答案是使用子查询

但在本例中,您使用的是SQL Server存储过程。因此,最好的方法是编写自己的存储过程:

1调用sp_helpdb或从master..sysdatabases中选择

2迭代结果

下面是一个例子:


如果我理解正确,您可以在此处使用派生表:-

选择数据库。从中命名查询
从sys.databases数据库中选择名称

是的,我一直在考虑使用循环,但这与正常的脚本编写不同您的脚本与答案最接近!设法通过你提供的链接找到我的答案。谢谢
name
----
master
tempdb
model
msdb
sp_msforeachdb 'EXEC sp_helpdb [?]'