附加sql语句:
EXEC sp_attach_db @dbname = N'dataName', @filename1 = N'mdf_filepath.mdf', @filename2 = N'log_filepath.ldf'
注意:此方法附件数据库后,数据库添加成功后,数据库mdf和ldf文件为添加前的路径,sql server并没有把数据文件拷到默认路径下!
备份数据库:
backup database dataName to disk='d:\xxx.bak'
还原数据库:
1、
restore database dataName from disk='xxx.bak'
注意:该语句会根据备份前的数据库mdf和ldf文件路径进行还原,当之前路径不存在时会出现还原失败。
2、
restore database kaoqing from disk='xxx.bak' WITH MOVE 'LogicalName' TO 'xxx.mdf', MOVE 'LogicalName' TO 'xxx.ldf' ——使用filelistonly命令来找出逻辑名称 ——LogicalName逻辑名称还原时不能改变 ——PhysicalName物理名称可以更改
restore filelistonly fromdisk='c:\test1_full.bak'
--------------------------------------------------
| LogicalName | PhysicalName |
--------------------------------------------------
| test1 | C:\mssql\data\test1.mdf |
| test1_log | C:\mssql\data\test1_log.ldf |
-------------------------------------------------
RESTORE DATABASE Test
FROM DISK = 'c:\test1_full.bak'
WITH MOVE 'Test1' TO 'C:\MSSQL\SRVR2_Data\Test_Data.MDF',
MOVE 'test1_log' TO 'C:\MSSQL\SRVR2_Data\Test_Log.LDF'
使用该方法进行数据还原时,会把数据库mdf和ldf文件拷到指定路径,不必担心数据备份前路径,LogiacalName表示逻辑名。