Sql 如何从另一个查询查询结果?
我正在针对MSSQL 2005服务器编写一个Trans-SQL脚本,该服务器打算查询每个数据库的文件路径。我能够列出系统中存在的数据库。但是如何基于结果运行单独的查询呢 以下是使用命令SELECT name from sys.databases从数据库列表中输出的结果: 现在,我想将这个数据库命名为master、tempdb,并输入另一个查询,即exec sp_helpdbSql 如何从另一个查询查询结果?,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变量中,然后使用该变量执行存储过程。不幸的
有什么想法吗?您可以基于该查询构建一个游标,然后循环遍历结果,将结果填充到SQL变量中,然后使用该变量执行存储过程。不幸的是,我现在不能给您一个示例,但这是我的方法。不直接回答您的问题,但是如果您想对每个数据库运行查询,您可以使用
否则,您将需要使用结果来生成SQL。通常,您的问题的答案是使用子查询 但在本例中,您使用的是SQL Server存储过程。因此,最好的方法是编写自己的存储过程: 1调用sp_helpdb或从master..sysdatabases中选择 2迭代结果 下面是一个例子:
如果我理解正确,您可以在此处使用派生表:- 选择数据库。从中命名查询
从sys.databases数据库中选择名称是的,我一直在考虑使用循环,但这与正常的脚本编写不同您的脚本与答案最接近!设法通过你提供的链接找到我的答案。谢谢
name
----
master
tempdb
model
msdb
sp_msforeachdb 'EXEC sp_helpdb [?]'