本文共 1622 字,大约阅读时间需要 5 分钟。
SELECT DISTINCT 'use master;' + Char(10) + 'GO' + Char(10) + 'ALTER DATABASE [' + CONVERT(VARCHAR(500), Db_name(database_id)) + '] ' + 'SET SINGLE_USER WITH ROLLBACK IMMEDIATE' + Char(10) + 'use master;' + Char(10) + 'GO' + Char(10) + 'EXEC master.dbo.sp_detach_db @dbname = N' + '''' + CONVERT(VARCHAR(500), Db_name(database_id)) + '''' + ';' + Char(10) + 'GO' + Char(10) FROM master.sys.master_files WHERE Db_name(database_id) NOT IN ( 'master', 'model', 'msdb', 'tempdb' )
这个脚本生成了需要分离数据库的脚本。在where子句中排除了四个系统数据库。
SELECT DISTINCT 'use master;' + Char(10) + 'GO' + Char(10) + 'CREATE DATABASE [' + CONVERT(VARCHAR(500), Db_name(x.database_id)) + ']' + ' ON ' + Char(10) + '( physical_name = N' + '''' + x.physical_name + '''' + '),' + Char(10) + '( physical_name = N' + '''' + y.physical_name + '''' + ')' + Char(10) + ' FOR ATTACH' + Char(10) + 'GO' FROM master.sys.master_files x, master.sys.master_files y WHERE Db_name(x.database_id) NOT IN ( 'master', 'model', 'msdb', 'tempdb' ) AND x.database_id = y.database_id AND x.physical_name LIKE '%mdf' AND y.physical_name LIKE '%ldf'
转载地址:http://ozanx.baihongyu.com/