- 爱易网页
-
MSSQL教程
- 一个备份功课总是报错
日期:2014-05-17 浏览次数:20584 次
一个备份作业总是报错
新建了一个作业,用来批量备份数据库,但是只能备份一次,第二次就报错,日志是:
已以用户 NT AUTHORITY\SYSTEM 的身份执行。 数据库中已存在名为 'Usp_BackUp_DataBase' 的对象。 [SQLSTATE 42S01] (错误 2714). 该步骤失败。
请高手指教,谢谢!
下面是脚本,请帮忙检查:
Use master
GO
/*=================Usp_BackUp_DataBase========================
=====BackUp Sigle DataBase ======
=====Ken.Guo ======
=====2010.9.10 ======
=====Version: 2005 & 2008 SQL Server ======
=====EXEC Usp_BackUp_DataBase 'MyDB','F:\Backup\MSsql' ======
============================================================
*/
CREATE PROC [dbo].[Usp_BackUp_DataBase] @DatabaseName nvarchar(200),@Path nvarchar(200)
AS
BEGIN
DECLARE @fn varchar(200)
,@sql varchar(1000)
SET @fn = @Path +(case when right(@Path,1) <>'\' then '\' else '' end)
+@DatabaseName+'_'
+convert(char(8),getdate(),112)+'_'
+replace(convert(char(8),getdate(),108),':','')
+'.bak'
set @sql = 'backup database '+@DatabaseName + ' to disk = N''' + @fn + ''''
--SELECT @sql
EXEC(@sql)
END
GO
Use master
GO
/*=============BackUp Mutile DataBase=========================*/
DECLARE @dbname nvarchar(200)
,@backup_path nvarchar(200)
SET @backup_path='F:\Backup\MSsql'
DECLARE db_info CURSOR
LOCAL
STATIC
READ_ONLY
FORWARD_ONLY
FOR
SELECT
name
FROM master.sys.databases WITH(NOLOCK)
WHERE
database_id>4
OPEN db_info
FETCH NEXT FROM db_info INTO @dbname
WHILE @@FETCH_STATUS=0