我需要搜索具有特定前缀的某些数据库。找到这些数据库后,我需要检查某个模式是否存在以及是否不存在 - 使数据库脱机。我一直在尝试在 Google 上找到的各种建议,但没有任何效果。我有一个无法克服的错误。错误是“XYZ”不是一个公认的选项。如果我分离出代码,它运行良好,但是当我添加 sp_MSforeachdb 时,错误返回。
EXEC sp_msforeachdb 'IF ''?'' LIKE ''abc_%''
BEGIN
IF (NOT EXISTS (SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'XYZ'
BEGIN
ALTER DATABASE [abc_xxxxxxxxx] SET OFFLINE WITH
ROLLBACK IMMEDIATE
END'
此代码工作正常:
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'XYZ'