在sqlserver management studio中,手动操作是先将目标数据库B的data,index,log文件名记录下来,然后还原时选中要导入的bak文件,再将原来的bak文件中的data,index,log文件信息替换成之前的,最后修改数据库名,完成还原
那这些步骤通过sql语句应该如何实现。这样可以不用每次都通过sqlserver management studio操作,而是可以写个脚本直接完成
5 个解决方案
#1
网上有类似的,要不你先参考下
http://blog.csdn.net/liuhelong/article/details/3335687
有啥问题再说~~
http://blog.csdn.net/liuhelong/article/details/3335687
有啥问题再说~~
#2
这个只是同一个数据库的备份还原
下面是我在网上看到的一个脚本
RESTORE DATABASE DBName
FROM DISK = 'E:\dumpfile.bak'
WITH MOVE 'mdf_file' TO 'E:\mdf_file.mdf',
MOVE 'log_file' TO 'E:\log_file.ldf',
STATS = 10, REPLACE
GO
这种可以用做A数据库的bak文件回滚到B数据库吗?datafile和indexfile不用替换吗?
#3
回滚??还原吧~
你把 DBName 改成 数据库B的名称
将 DISK = 'E:\dumpfile.bak' 改到你A备份的地方
然后 MOVE后面的mdf_file log_file要成你的A库的相应逻辑名
TO 后面 改成你要放的地方
REPLACE 确定你要覆盖原有的,就加上~~
你把 DBName 改成 数据库B的名称
将 DISK = 'E:\dumpfile.bak' 改到你A备份的地方
然后 MOVE后面的mdf_file log_file要成你的A库的相应逻辑名
TO 后面 改成你要放的地方
REPLACE 确定你要覆盖原有的,就加上~~
#4
那sqlserver management studio里设置的overwrite = 'true' 和 修改数据库名呢,在脚本里不用写吗
#5
已经包含在其中了
#1
网上有类似的,要不你先参考下
http://blog.csdn.net/liuhelong/article/details/3335687
有啥问题再说~~
http://blog.csdn.net/liuhelong/article/details/3335687
有啥问题再说~~
#2
这个只是同一个数据库的备份还原
下面是我在网上看到的一个脚本
RESTORE DATABASE DBName
FROM DISK = 'E:\dumpfile.bak'
WITH MOVE 'mdf_file' TO 'E:\mdf_file.mdf',
MOVE 'log_file' TO 'E:\log_file.ldf',
STATS = 10, REPLACE
GO
这种可以用做A数据库的bak文件回滚到B数据库吗?datafile和indexfile不用替换吗?
#3
回滚??还原吧~
你把 DBName 改成 数据库B的名称
将 DISK = 'E:\dumpfile.bak' 改到你A备份的地方
然后 MOVE后面的mdf_file log_file要成你的A库的相应逻辑名
TO 后面 改成你要放的地方
REPLACE 确定你要覆盖原有的,就加上~~
你把 DBName 改成 数据库B的名称
将 DISK = 'E:\dumpfile.bak' 改到你A备份的地方
然后 MOVE后面的mdf_file log_file要成你的A库的相应逻辑名
TO 后面 改成你要放的地方
REPLACE 确定你要覆盖原有的,就加上~~
#4
那sqlserver management studio里设置的overwrite = 'true' 和 修改数据库名呢,在脚本里不用写吗
#5
已经包含在其中了