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)

解决方案 »

  1.   

    建立作业,在SQL语句那里填入上面的语句
    指定执行的时间就可以了
    不过要在E盘上建立文件夹!!
      

  2.   

    楼上的代码有问题!
    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循环还有什么作用呀?
      

  3.   

    小弟新手,有没有不用sql语句的,直接能从窗口选择备份的简单方法亚,我的数据库是远程的
    没有e盘呀。