我需要使用特定前缀搜索某些数据库。一旦找到这些数据库,我需要检查某个特定的模式是否存在,以及它是否存在 - 使数据库脱机。我一直在尝试在Google上发现的各种建议,但没有任何效果。我有一个我无法逾越的错误。错误是'XYZ'不是公认的选项。如果我将代码分离出来,它运行良好,但是当我添加sp_MSforeachdb时,错误会返回。如何在sp_MSforeachdb中指定TABLE_SCHEMA名称以使数据库脱机
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'
回答1工作的罚款和第二反应也有帮助。我决定实施第一种解决方案,因为它不依赖于sp_MSforeachdb。感谢所有贡献的人! – user1927354 2013-04-25 01:27:39