注意: 还原数据库时,不能使用要被还原的数据库(andyny) ,如使用企业管理器正在使用被还原的数据库,不能有对被还原的数据库(andyny)有任何操作,如程序运行sql语句正在操作被还原的数据库.
否则报错:
conn.execute("restore database docdata from disk=f:\database.bak")
对不起,还原备份系统数据失败![microsoft][odbc sql server driver][sql server]因为数据库正在使用,所以未能获得对数据库的排它访问权。
备份数据库,例如:
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'
/////////////// 示例代码摘录///////////////
CNN cn = new CNN();
String sqlStr = "select * from db where stu_id=1";
//String s="BACKUP DATABASE DB TO DISK = 'c:/DB.bak'";
// 注意语法,'字符串'......
// String s="BACKUP DATABASE andyny TO DISK ='c:/andyny.bak'";
String ss="RESTORE Database andyny from disk='c:/andyny.bak'";
// andyny 是被还原,备份的数据库名....
boolean b=cn.backAndRestoreUpDB(ss);