SQL本身有数据导入的操作。但如果要从一个备份的文件中导入数据,则要进行另外的操作。下面以一个例子进行说明。
SQL服务器上已有一个DOE数据库,并且里面有大量的数据,现准备从另外一个备份文件A1.BAK(不是DOE数据库的备份文件)中导入另外的数据(即导入后在DOE中增加一些数据表,表中已录有数据),并保持原DOE的数据不变。
1、首先,在“SQL企业管理器”中新建一个临时数据库A1。
2、右击A1数据库,选择:所有任务->还原数据库。
3、在“还原数据库”窗口中,选择:“从设备”。
4、点击“选择设备”。
5、点击“添加”。
6、从文件名中选择要还原的数据库文件,如A1.BAK。
7、点击“确定”,返回“还原数据库”窗口。
8、点击“选项”卡,进入选项设置。
9、钩选:“在现有数据库上强制还原”。
10、修改“移到物理文件名”为:“c:/a1.ldf”、“c:/a1.mdf”。
11、点确定,即可导入备份文件中的数据到临时数据库A1中。
12、此时,你可以将数据从A1导入到另外一真正要导入的数据库中,如DOE数据库。
(下面的数据导入操作为SQL2000企业管理器的一般数据导入导出操作。)
13、在“SQL企业管理器”中选择“DOE”数据库。
14、右击DOE数据库,选择:所有任务->导入数据。 1
5、在“DTS导入/导出向导”窗口的“选择数据源”中,数据源选择刚才建立并导入数据的临时数据库A1。点击下一步。
16、在“选择目的”中,系统已经默认为DOE数据库。
17、连续点击“下一步”,直到完成。 经过上面的操作,你已经成功地将备份文件A1.BAK中数据导入DOE数据库中,并且DOE数据库原有数据不变。
此时,你可以删除临时数据库A1。
备份数据库,例如:
BACKUP DATABASE Northwind
TO DISK = 'c:/Northwind.bak'
还原数据库,例如:
--返回由备份集内包含的数据库和日志文件列表组成的结果集
RESTORE FILELISTONLY
FROM DISK = 'c:/Northwind.bak'
--还原由BACKUP备份的数据库
RESTORE DATABASE Northwind
FROM DISK = 'c:/Northwind.bak'
--指定还原后的数据库物理文件名称及路径
RESTORE DATABASE TestDB
FROM DISK = 'c:/Northwind.bak'
WITH
MOVE 'Northwind' TO 'c:/test/testdb.mdf',
MOVE 'Northwind_log' TO 'c:/test/testdb.ldf'
MOVE 'logical_file_name' TO 'operating_system_file_name'
指定应将给定的 logical_file_name 移到 operating_system_file_name。
默认情况下,logical_file_name 将还原到其原始位置。如果使用 RESTORE
语句将数据库复制到相同或不同的服务器上,则可能需要使用 MOVE 选项重
新定位数据库文件以避免与现有文件冲突。可以在不同的 MOVE 语句中指定
数据库内的每个逻辑文件。
--强制还原,加上REPLACE参数,则在现有数据库基础上强制还原。
RESTORE DATABASE TestDB
FROM DISK = 'c:/Northwind.bak'
WITH REPLACE,
MOVE 'Northwind' TO 'c:/test/testdb.mdf',
MOVE 'Northwind_log' TO 'c:/test/testdb.ldf'