我在脚本中执行这样的sql server备份:
BACKUP DATABASE databasename TO DISK = `path'
由于此备份将自动化,如何将今天的日期插入'path'
?
答案 0 :(得分:2)
你可以用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
答案 1 :(得分:2)
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