declare @filedir varchar(200),@dir varchar(200)
declare @dbname varchar(50),@bakname varchar(50),@sql varchar(4000)
select @filedir=filename from sysfiles
set @dir=''
while charindex('\',@filedir)<>0
begin
set @dir=@dir+left(@filedir,charindex('\',@filedir))
set @filedir=substring(@filedir,charindex('\',@filedir)+1,len(@filedir)-charindex('\',@filedir))
end
set @bakname='bak'+cast(datepart(weekday,getdate())-1 as varchar(1))
-----指定数据库
set @dbname='scmbuilder'set @sql='BACKUP DATABASE ['+@dbname+'] TO DISK = N'''+'e:\sqlbak\'+@bakname+''' WITH INIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT'
--备份文件到"e:\sqlbak\"目录下
exec(@sql)
declare @dbname varchar(50),@bakname varchar(50),@sql varchar(4000)
select @filedir=filename from sysfiles
set @dir=''
while charindex('\',@filedir)<>0
begin
set @dir=@dir+left(@filedir,charindex('\',@filedir))
set @filedir=substring(@filedir,charindex('\',@filedir)+1,len(@filedir)-charindex('\',@filedir))
end
set @bakname='bak'+cast(datepart(weekday,getdate())-1 as varchar(1))
-----指定数据库
set @dbname='scmbuilder'set @sql='BACKUP DATABASE ['+@dbname+'] TO DISK = N'''+'e:\sqlbak\'+@bakname+''' WITH INIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT'
--备份文件到"e:\sqlbak\"目录下
exec(@sql)
指定执行的时间就可以了
不过要在E盘上建立文件夹!!
set @sql='BACKUP DATABASE ['+@dbname+'] TO DISK = N'''+'e:\sqlbak\'+@bakname+''' WITH INIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT'
这句应该变成:
set @sql='BACKUP DATABASE ['+@dbname+'] TO DISK = N'''+@dir+@bakname+''' WITH INIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT'
@dir变量不就是取得备份的路径吗?要不你上边的while循环还有什么作用呀?
没有e盘呀。