请问在哪里加一条语句判断提示,备份成功或者失败了
顺便问下可否能用MessageBox这种提示呢。。create proc p_backupdb
@dbname sysname='', --要备份的数据库名称,不指定则备份当前数据库
@bkpath nvarchar(260)='', --备份文件的存放目录,不指定则使用SQL默认的备份目录
@bkfname nvarchar(260)='', --备份文件名,文件名中可以用\DBNAME\代表数据库名,\DATE\代表日期,\TIME\代表时间
@bktype nvarchar(10)='DB', --备份类型:'DB'备份数据库,'DF' 差异备份,'LOG' 日志备份
@appendfile bit=1 --追加/覆盖备份文件
as
declare @sql varchar(8000)
if isnull(@dbname,'')='' set @dbname=db_name()
if isnull(@bkpath,'')='' set @bkpath=dbo.f_getdbpath(null)
if isnull(@bkfname,'')='' set @bkfname='\DBNAME\_\DATE\_\TIME\.BAK'
set @bkfname=replace(replace(replace(@bkfname,'\DBNAME\',@dbname)
,'\DATE\',convert(varchar,getdate(),112))
,'\TIME\',replace(convert(varchar,getdate(),108),':',''))
set @sql='backup '+case @bktype when 'LOG' then 'log ' else 'database ' end +@dbname
+' to disk='''+@bkpath+@bkfname
+''' with '+case @bktype when 'DF' then 'DIFFERENTIAL,' else '' end
+case @appendfile when 1 then 'NOINIT' else 'INIT' end
print @sql
exec(@sql)GO
顺便问下可否能用MessageBox这种提示呢。。create proc p_backupdb
@dbname sysname='', --要备份的数据库名称,不指定则备份当前数据库
@bkpath nvarchar(260)='', --备份文件的存放目录,不指定则使用SQL默认的备份目录
@bkfname nvarchar(260)='', --备份文件名,文件名中可以用\DBNAME\代表数据库名,\DATE\代表日期,\TIME\代表时间
@bktype nvarchar(10)='DB', --备份类型:'DB'备份数据库,'DF' 差异备份,'LOG' 日志备份
@appendfile bit=1 --追加/覆盖备份文件
as
declare @sql varchar(8000)
if isnull(@dbname,'')='' set @dbname=db_name()
if isnull(@bkpath,'')='' set @bkpath=dbo.f_getdbpath(null)
if isnull(@bkfname,'')='' set @bkfname='\DBNAME\_\DATE\_\TIME\.BAK'
set @bkfname=replace(replace(replace(@bkfname,'\DBNAME\',@dbname)
,'\DATE\',convert(varchar,getdate(),112))
,'\TIME\',replace(convert(varchar,getdate(),108),':',''))
set @sql='backup '+case @bktype when 'LOG' then 'log ' else 'database ' end +@dbname
+' to disk='''+@bkpath+@bkfname
+''' with '+case @bktype when 'DF' then 'DIFFERENTIAL,' else '' end
+case @appendfile when 1 then 'NOINIT' else 'INIT' end
print @sql
exec(@sql)GO
SQL还没这么强吧,这是前台程序处理RAISERROER可以抛错,前台程序捕捉
EXEC 存储过程
IF @@ERROER<>0
ROLLBACK TRAN
@dbname SYSNAME='', --要备份的数据库名称,不指定则备份当前数据库
@bkpath NVARCHAR(260)='', --备份文件的存放目录,不指定则使用SQL默认的备份目录
@bkfname NVARCHAR(260)='', --备份文件名,文件名中可以用\DBNAME\代表数据库名,\DATE\代表日期,\TIME\代表时间
@bktype NVARCHAR(10)='DB', --备份类型:'DB'备份数据库,'DF' 差异备份,'LOG' 日志备份
@appendfile BIT=1 --追加/覆盖备份文件
AS
DECLARE @sql VARCHAR(8000)
IF ISNULL(@dbname, '')=''
SET @dbname = DB_NAME()
IF ISNULL(@bkpath, '')=''
SET @bkpath = dbo.f_getdbpath(NULL)
IF ISNULL(@bkfname, '')=''
SET @bkfname = '\DBNAME\_\DATE\_\TIME\.BAK'
SET @bkfname = REPLACE(
REPLACE(
REPLACE(@bkfname, '\DBNAME\', @dbname), '\DATE\', CONVERT(VARCHAR, GETDATE(), 112)
), '\TIME\', REPLACE(CONVERT(VARCHAR, GETDATE(), 108), ':', '')
)
SET @sql = 'backup '+CASE @bktype
WHEN 'LOG' THEN 'log '
ELSE 'database '
END+@dbname
+' to disk='''+@bkpath+@bkfname
+''' with '+CASE @bktype
WHEN 'DF' THEN 'DIFFERENTIAL,'
ELSE ''
END
+CASE @appendfile
WHEN 1 THEN 'NOINIT'
ELSE 'INIT'
END
PRINT @sql
EXEC (@sql)
IF @@ERROR<>0
RAISERROR('本次备份不成功!',18,18)
GO
Tony哥,这个只是报不成功的,那要是成功也报一下呢。。或者说在这里加一个排它要怎么样?
IF @@ERROR=0
RAISERROR('本次备份成功!',18,18)
ELSE
RAISERROR('本次备份不成功!',18,18)