【转】通过SQL语句来备份,还原数据库

这里仅仅用到了一种方式而已,把数据库文件备份到磁盘然后在恢复.

eg:

 

 

代码
/*   
通过SQL 语句备份数据库   
*/   
BACKUP DATABASE mydb  
TO DISK ='C:\DBBACK\mydb.BAK'    
--这里指定需要备份数据库的路径和文件名,注意:路径的文件夹是必须已经创建的.文件名可以使用日期来标示    
  
/*  
通过SQL语句还原数据库  
*/  
USE master  
RESTORE DATABASE mydb  
FROM DISK='C:\DBBACK\mydb.BAK'  
WITH REPLACE

 

 注意:很多时候不能直接还原,因为数据不是独占打开.可能用到下面的过程

 

代码
--Kill掉访问某个数据库的连接   
CREATE PROC KillSpid(@DBName varchar)   
AS   
BEGIN   
DECLARE @SQL varchar   
DECLARE @SPID int   
SET @SQL='DECLARE CurrentID CURSOR FOR    
SELECT spid FROM sysprocesses WHERE dbid=db_id(
'''+@DBName+''''   
FETCH NEXT FROM CurrentID INTO @SPID  
WHILE @@FETCH_STATUS <>-1  
BEGIN  
exec('KILL '+@SPID)  
FETCH NEXT FROM  CurrentID INTO @SPID  
END  
CLOSE CurrentID  
DEALLOCATE CurrentID  
END

 

 当kill掉用户后最好使用单用户操作数据库

 

SP_DBOPTION @DBName,'single user','true'

 

posted @ 2009-12-23 10:13  哥本哈根  阅读(278)  评论(0编辑  收藏  举报