gpt4 book ai didi

sql-server - SQL查询多个数据库

转载 作者:行者123 更新时间:2023-12-01 06:17:42 25 4
gpt4 key购买 nike

我需要在 SQL Server 上运行 SELECT 查询并返回从同一服务器上的多个数据库中提取的信息。我有以下可行的方法:

SELECT [Name], [Nationality]
FROM [dbtest].[dbo].[Staff]
WHERE Nationality = 'Canadian'

Union all

SELECT [Name], [Nationality]
FROM [dbtest2].[dbo].[Staff]
WHERE Nationality = 'Canadian'

etc..

问题是我有 2000 个数据库要查询,将来几乎肯定会添加,这意味着查询需要编辑。

我真正需要的是数据库名称的通配符。

即:

*.[dbo].[Staff] 

但这给了我一个错误。即使有效,也并非所有数据库都具有相同的表,因此无论如何都可能出错。

有什么方法可以在不输入上面的示例 2000 次的情况下做到这一点?

最佳答案

您可以动态构建语句

DECLARE @Query varchar(max) = ''

SELECT @Query = COALESCE(@Query + ' UNION ALL ', '') + 'SELECT [Name], [Nationality] FROM [' + TABLE_CATALOG+'].dbo.[Staff] WHERE Nationality = ''Canadian'''
FROM information_schema.tables
WHERE table_name = 'Staff'

SET @Query = STUFF(@Query, CHARINDEX('UNION ALL', @Query), 10, '')

PRINT @Query

EXEC(@Query)

关于sql-server - SQL查询多个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30547177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com