Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从每个数据库的同一个表中选择信息的SQL脚本?_Sql_Sql Server - Fatal编程技术网

从每个数据库的同一个表中选择信息的SQL脚本?

从每个数据库的同一个表中选择信息的SQL脚本?,sql,sql-server,Sql,Sql Server,我想知道如何编写一个SQL脚本来从表1中获取10多个数据库的信息,我该如何做呢? 换句话说,我有10多个数据库,它们都有一个完全相同的表,称为Table1,我如何编写脚本而不重复代码 SELECT name, dbo.tDBVersion FROM MASTER.dbo.sysdatabases WHERE NAME LIKE 'AAA%' 我尝试了上述方法,但问题是弹出窗口:“无法绑定多部分标识符dbo.tDBVersion” 我想要的结果是两列:名称和旁边的dbversion编号 编辑:我

我想知道如何编写一个SQL脚本来从表1中获取10多个数据库的信息,我该如何做呢? 换句话说,我有10多个数据库,它们都有一个完全相同的表,称为Table1,我如何编写脚本而不重复代码

SELECT name, dbo.tDBVersion FROM MASTER.dbo.sysdatabases WHERE NAME LIKE 'AAA%'
我尝试了上述方法,但问题是弹出窗口:“无法绑定多部分标识符dbo.tDBVersion”

我想要的结果是两列:名称和旁边的dbversion编号


编辑:我的所有数据库都以AAA开头

有一个名为
sp_MSforeachdb
的存储过程。这将在每个数据库中运行相同的命令-例如:

EXEC sp_MSforeachdb 'IF EXISTS(SELECT 1 FROM sys.tables WHERE name = ''tDBversion'')  SELECT db_name(), col1, col2 FROM tDBversion'

我继续手动操作,然后玩弄临时表,得到了我想要的以下内容:

USE AAA
SELECT  DB_Name() 'Database', Version, CodeVersion INTO #TempTable FROM tDBVersion

USE AAB
INSERT INTO #TempTable 
SELECT  DB_Name() 'Database', Version, CodeVersion FROM tDBVersion

USE AAC
INSERT INTO #TempTable 
SELECT  DB_Name() 'Database', Version, CodeVersion FROM tDBVersion

SELECT * FROM #TempTable
-- ORDER BY "Version" asc
DROP TABLE #TempTable

-- My info sticks in the result pane while the table is dropped so that I don't forget to drop it

我明白了,这让我达到了50%,现在我只需要在结果旁边的一列中显示被查询的数据库的名称,有没有办法做到这一点?更新的答案-结合使用db_name()函数我正在尝试,但我得到的是“无效对象名”dbo.tDBversion。EXEC sp_MSforeachdb“SELECT DB_NAME(),Version FROM dbo.tDBVersion”该表在一个或多个数据库中不存在。您需要先更改命令检查表是否存在-请参阅更新的应答刚才注意到发生了什么。我执行了USE master,SP仅在主数据库上运行10次。一旦我运行USE AAA database,我就没有任何错误,但我现在有10次相同的DB,而不是10次不同的DB