Sql 根据.bak恢复数据库

 1 /*------------------------------------------------------------------
2
3 -- Author : htl258(Tony)
4
5 -- Date : 2010-04-15 22:07:01
6
7 -- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
8
9 Jul 9 2008 14:43:34
10
11 Copyright (c) 1988-2008 Microsoft Corporation
12
13 Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
14
15 -- Subject: SQL备份还原实例(还原时备份文件路径与备份时不同可用此方法)
16 ------------------------------------------------------------------*/
17
18
19
20 --备份
21 BACKUP DATABASE mydb
22
23 TO DISK='c:/olddb.bak'
24
25 WITH INIT
26
27
28
29 --为了测试,把备份好的文件从C盘移动到D:/tempdb 文件夹
30
31
32 --还原
33 --1.用此语句得到备份文件的逻辑文件名:
34 RESTORE FILELISTONLY FROM DISK = N'd:/tempdb/olddb.bak' --备份文件存放路径
35 --看LogicalName,一般会有两个文件,如:
36 --olddb --主逻辑文件名称
37 --olddb_log --日志逻辑文件名称
38
39
40 --2.用以下语句还原数据库
41 RESTORE DATABASE new_db
42
43 FROM DISK = 'd:/tempdb/olddb.bak'
44
45 WITH MOVE 'olddb' TO 'd:/tempdb/newdb.mdf',
46
47 MOVE 'olddb_log' TO 'd:/tempdb/newdb_log.ldf'
48
49
50
51 /*--对以上代码补充说明:
52 RESTORE DATABASE 还原后数据库的名称
53
54 FROM DISK = '备份文件的路径/备份数据库名称.bak'
55
56 WITH MOVE '主逻辑文件名称' TO '还原后的路径/还原后数据文件名称.mdf',
57
58 MOVE '日志逻辑文件名称' TO '还原后的路径/还原后日志文件名称_log.ldf'
59
60 */
61
62
63
64 --如果遇到页面错误乃至不能还原,可用以下误句强制还原,跳过页面错误:
65 RESTORE DATABASE dbname
66
67 FROM DISK='backupset_file'
68
69 WITH CONTINUE_AFTER_ERROR
70
71
72
73 --还原后用DBCC CHECKDB 修复数据库。
74 --注意:由于原始的备份集中有页面错误,还原后会有部分数据丢失

SQL数据库不同备份名称存放不同路径还原方法

引自:http://blog.csdn.net/htl258/article/details/5490832

posted @ 2012-02-21 11:41  only_copy  阅读(260)  评论(0编辑  收藏  举报