我需要在许多数据库上运行以下查询,我有超过100多个数据库,但我不想拉起每个数据库并一次运行一个查询。SQL查询所有数据库
用户表仅在Database#_Account
中列出。
如果查询运行错误,因为Database#_Admin
没有User
表。
(示例数据库列表)
Database:
---------------------
MASTER
Model
msdb
tempdb
Database1_Account
Database1_Admin
Database2_Account
Database2_Admin
Database3_Account
Database3_Admin
查询:
EXEC sp_MsForEachDb @command1 = SELECT "?" as DatabaseName, *
FROM ?.User
WHERE Name = "John" AND "?" LIKE "%_Account"
只是建立一个DINAMIC查询https://www.mssqltips.com/sqlservertip/1160/execute-dynamic-sql-commands-in-sql -server/ –
另外你首先需要检查表是否存在。 https://stackoverflow.com/questions/167576/check-if-table-exists-in-sql-server –
我遇到的问题是只在选定的数据库上运行查询。我查看了动态查询,但没有提到有关搜索选择数据库的任何信息。 –