判断是否存在,存在则先删除。否则直接备份
if object_id('p_dbbak') is not null drop proc p_dbbak
go
create proc p_dbbak
@db varchar(15), -- 要备份的 database
@bak_name varchar(110) -- bak路径+文件名
as
declare @result int,@delstr varchar(100)
exec xp_fileexist @bak_name, @result output
if @result=1 --表文件存在,先删除
begin
set @delstr='del "'+@bak_name+'"'
exec xp_cmdshell @delstr
end
set @bak_name='backup database '+@db +' to disk='''+@bak_name+''''
exec(@bak_name)
go
exec p_dbbak 'szy','G:/SQL/szy.bak'