基礎知識
查詢現有數據庫列表
use master
go
select db_name(database_id) as [Database Name],type_desc as [File Type], physical_name as [Database File Location] from sys.master_files
附加數據庫(TSQL)
方法一
USE [master]
GO
create database <DatabaseName> ON
(name='LogicalName of the Data file', FileName='Data File Name'),
(name='LogicalName of the Log file', FileName='Log File Name')
FOR ATTACH;
方法二
USE [master]
GO
EXEC sp_attach_db @dbname = N'DatabaseName',
@filename1 = '<Location of the database file>',
@filename2 = '<Location of the Log file>';
分離數據庫(TSQL)
EXEC sp_detach_db 'AdventureWorks2012', 'true';
實際應用
實際應用中,如果我們有多個數據庫,我們就需要批量附加,大概的思路如下:
- 選擇文件夾,遍歷文件夾下的所有mdf文件,並找到對應的ldf文件
- 構造單個的TSQL語句(附加或分離)
- 將構造好的TSQL語句執行即可
參考資料:
3. Different methods to attach SQL Server MDF files
4. sp_detach_db (Transact-SQL)