我正在尝试调整 SQL 查询来检查服务器上每个数据库中存在的某个字段中存在的值。
有 100 个单独的数据库,我想检查每个数据库的具体记录。
答案可能是使用如下命令,但我很难适应它。
EXECUTE sp_MSForEachDB
'USE ?; SELECT DB_NAME()AS DBName,
COUNT(1)AS [Count] FROM CUSTOMERS'
我通过下面的链接取得了更大的成功;
https://stackoverflow.com/a/18462734/3461845
我需要能够执行此查询:
SELECT [SettingName],[SettingValue] FROM [HostSettings] Where [SettingName] = 'SMTPServer'
并且还为返回的每一行拉回数据库名称;
DBName | SettingName | SettingValue
Database1 | SMTPServer | smtp.gmail.com
Database2 | SMTPServer | smtp.gmail.com
Database3 | SMTPServer | smtp.yahoo.com
非常感谢任何帮助。
谢谢!
最佳答案
DECLARE @T TABLE
([DbName] SYSNAME,
[SettingName] VARCHAR(255),
[SettingValue] VARCHAR(255));
INSERT INTO
@T
EXEC sp_MSForEachDB
'SELECT
''?'',
[SettingName],
[SettingValue]
FROM
[?]..[HostSettings]
WHERE
[SettingName] = ''SMTPServer''';
SELECT * FROM @T;
关于sql - 对多个数据库执行相同的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37920859/