【发布时间】:2011-03-15 23:12:28
【问题描述】:
我在脚本中做这样的 sql server 备份:
BACKUP DATABASE databasename TO DISK = `path'
由于此备份将自动进行,我如何将今天的日期插入'path'?
【问题讨论】:
标签: sql sql-server shell backup
我在脚本中做这样的 sql server 备份:
BACKUP DATABASE databasename TO DISK = `path'
由于此备份将自动进行,我如何将今天的日期插入'path'?
【问题讨论】:
标签: sql sql-server shell backup
declare @path varchar(255), @mydb varchar(50)
SELECT @mydb = 'MyDBToBackUp'
select @path = 'C:\foo\bar\' + @mydb + '-' + convert(varchar(8),getdate(),112) + '.bak'
BACKUP DATABASE @mydb TO @path
BACKUP DATABASE 接受局部变量
编辑:最后一行应该是这样的:哎呀。对不起。
BACKUP DATABASE @mydb TO DISK = @path
【讨论】:
您可以像这样以 yyyymmdd 格式获取今天的日期
convert(varchar(8),getdate(),112)
例如,将 print 更改为 exec
declare @date varchar(8)
select @date = convert(varchar(8),getdate(),112)
--change print to exec
print ('BACKUP DATABASE databasename TO DISK = ''path' + @date + '''')
将生成此语句
BACKUP DATABASE databasename TO DISK = 'path20100714'
您可能还想添加一个像 BAK 这样的扩展
还要查看 INIT 和 NOINIT,如果备份已经存在,INIT 将覆盖该名称,NOINIT 将附加,另请参阅:http://msdn.microsoft.com/en-us/library/ms186865.aspx
【讨论】: