|
来源:csdn
发表日期:2008年5月10日
作者:
|
?:我想在程序中用SQL 语句备份和恢复数据库,应该怎样写SQL ?? 在恢复数据库时,我应该连接哪个数据库,才能此不会冲突?
>>备份: use master backup database yourdatabase to disk='d:\...\***.bak' 还原: user master restore database yourdatabase from disk='d:\...\***.bak'
>>恢复时不要联接哪个数据库!会根据你的命名产生一个数据库!也可以恢复到相应的数据库里!
>>--备份 backup database sys to disk='c:\目录\a.bak' with init --还原 use master RESTORE DATABASE TestDB FROM DISK = 'c:\2002.dat'
>>--备份 backup database sys to disk='c:\目录\a.bak' with init --还原 use master RESTORE DATABASE TestDB FROM DISK = 'c:\2002.dat'
>>create PROCEDURE GY_DBBak @bakequip int, -- 备份设备:磁盘&磁带 @bakpath varchar(50), -- 带全路径的备份文件名 @baktype int, -- 完全备份&增量备份 @baklog int, -- ‘0’备份日志 @bakdb int, -- ‘0’备份数据库 @kind varchar(7), --备份还是恢复 @retmsg varchar(20) output --返回信息 AS DECLARE @DevName_data varchar(50) DECLARE @DevName_log varchar(50) declare @db_path varchar(100) declare @log_path varchar(100) DECLARE @RC INT SELECT @db_path = @bakpath + '.dat' SELECT @log_path = @bakpath + 'log.dat' SELECT @RC=0 select @DevName_data='dali',@DevName_log='dalilog' DBCC CHECKDB(数据库名) /*********************************************************** ** CREATE BACKUP AND RESTORE DEVICES ************************************************************/ IF @RC=0 BEGIN EXEC sp_addumpdevice 'disk', @DevName_data,@db_path exec sp_addumpdevice 'disk', @DevName_log,@log_path select @rc=@@error IF @RC<>0 begin EXEC SP_DropDevice @Devname_data exec sp_dropdevice @devname_log SELECT @RC=-1000 return @rc end END IF @kind='backup' BEGIN IF @bakequip=0 BEGIN IF @baktype=0 BEGIN IF @bakdb=0 BEGIN BACKUP DATABASE 数据库名 TO DISK=@Devname_data WITH INIT END IF @baklog=0 BEGIN BACKUP LOG 数据库名 WITH NO_LOG BACKUP LOG 数据库名 TO DISK=@DevName_log WITH INIT,NO_TRUNCATE END END ELSE BEGIN IF @bakdb=0 BEGIN BACKUP DATABASE 数据库名 TO DISK=@DevName_data WITH NOINIT END IF @baklog=0 BEGIN BACKUP LOG 数据库名 WITH NO_LOG BACKUP LOG 数据库名 TO DISK=@DevName_log WITH NOINIT,NO_TRUNCATE END END END SELECT @retmsg='数据库备份成功!' END IF @kind='restore' BEGIN RESTORE DATABASE 数据库名 FROM DISK= @DevName_data WITH REPLACE SELECT @retmsg='恢复数据库成功!' END EXEC SP_DropDevice @Devname_data exec sp_dropdevice @devname_log RETURN 0 ---测试: declare @ varchar(100) exec gy_dbbak 0,'aa',0,0,0,'backup',@ output select @
>>在恢复数据库时,可以连接到MASTER库. ----------------------------- BACKUP 备份整个数据库、事务日志,或者备份一个或多个文件或文件组。有关数据库备份和恢复操作的更多信息,请参见备份和还原数据库。 RESTORE 还原使用 BACKUP 命令所做的备份。有关数据库备份和还原操作的更多信息,请参见备份和还原数据库。 具体参考联机帮助.
(编辑:网站学习网)
|
|
|
|