SQL server2000数据库备份和还原语句

时间:2021-03-28 19:08:48
          注意: 还原数据库时,不能使用要被还原的数据库(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);