正文
sql 用语句还原多数据文件的数据库
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
/* 还原bak数据库文件*/RESTORE DATABASE userdb_cs /*还原为userdb名的新数据库*/
FROM DISK = 'D:\工作资料\数据库文件\userdb.bak' /*数据库备份文件的存放路径*/
WITH MOVE 'Csoft' TO 'D:\工作资料\userdb\userdb_cs_Csoft.mdf', /*把原数据库文件重新定向至自己希望存放的文件夹下*/
MOVE 'base' TO 'D:\工作资料\userdb\userdb_cs_base.mdf',
MOVE 'report' TO 'D:\工作资料\userdb\userdb_cs_report.mdf',
MOVE 'Csoft_log' TO 'D:\工作资料\userdb\userdb_cs_log.ldf' /*把原数据库日志文件重新定向至自己希望存放的文件夹下*//*查看他人,其他服务器中备份出来的bak数据库文件中,数据库逻辑文件的原始文件名,userdb_new为bak文件*/
restore filelistonly from disk='D:\工作资料\数据库文件\userdb.bak'--查看当前的存放位置
select database_id,name,physical_name AS CurrentLocation,state_desc,size from sys.master_files
where database_id=db_id(N'数据库名'); --修改文件的存放位置下次启动生效
--testDb为数据库名,
alter database 数据库名 modify file ( name = 文件名(不包含后缀), filename = '文件存储路径');
alter database 数据库名 modify file ( name = 文件名(不包含后缀), filename = '文件存储路径');
eg.
alter database testDb modify file ( name = testDb, filename = 'G:\SQL_DATA\testDb\testDb.mdf');
alter database testDb modify file ( name = testDb_log, filename = 'G:\SQL_DATA\testDb\testdb_log.ldf'); --修改默认的数据库文件存放位置(即时生效)
EXEC xp_instance_regwrite
@rootkey='HKEY_LOCAL_MACHINE',
@key='Software\Microsoft\MSSQLServer\MSSQLServer',
@value_name='DefaultData',
@type=REG_SZ,
@value='E:\MSSQL_MDF\data'
GO
--修改默认的日志文件存放位置<span style="font-family: Arial, Helvetica, sans-serif;">(即时生效)</span>
EXEC master..xp_instance_regwrite
@rootkey='HKEY_LOCAL_MACHINE',
@key='Software\Microsoft\MSSQLServer\MSSQLServer',
@value_name='DefaultLog',
@type=REG_SZ,
@value='E:\MSSQL_MDF\log'
GO