Sql server SQL Server.BAK创建默认掩码

Sql server SQL Server.BAK创建默认掩码,sql-server,database-backups,vsdb,Sql Server,Database Backups,Vsdb,目前,当SQL server创建.BAK文件(备份数据库)时,它使用默认掩码,例如 DatabaseName-YearMonthDay-Time.bak 有没有办法更改此默认设置?i、 假设我只需要DatabaseName-YearMonthDay.bak(默认情况下) 谢谢 一些细节:我正在使用一个Visual Studio数据库项目,并检查了“部署前备份数据库”标志——它会在默认备份位置自动生成一个.bak文件(因此,虽然我可能会创建一个存储过程,但我更喜欢这个选项)——我猜这并不容易做到(

目前,当SQL server创建.BAK文件(备份数据库)时,它使用默认掩码,例如 DatabaseName-YearMonthDay-Time.bak

有没有办法更改此默认设置?i、 假设我只需要DatabaseName-YearMonthDay.bak(默认情况下)

谢谢


一些细节:我正在使用一个Visual Studio数据库项目,并检查了“部署前备份数据库”标志——它会在默认备份位置自动生成一个.bak文件(因此,虽然我可能会创建一个存储过程,但我更喜欢这个选项)——我猜这并不容易做到(如果可能的话)

不使用SSMS中的GUI,而是使用SQL脚本进行备份。如果使用SQL脚本,则可以完全自定义文件名

下面是一个示例脚本,它将时间、年、月、日、小时、分钟和秒放入备份文件名中:

--Script 1: Backup specific database

-- 1. Variable declaration

DECLARE @path VARCHAR(500)
DECLARE @name VARCHAR(500)
DECLARE @pathwithname VARCHAR(500)
DECLARE @time DATETIME
DECLARE @year VARCHAR(4)
DECLARE @month VARCHAR(2)
DECLARE @day VARCHAR(2)
DECLARE @hour VARCHAR(2)
DECLARE @minute VARCHAR(2)
DECLARE @second VARCHAR(2)

-- 2. Setting the backup path

SET @path = 'E:\Backup\'

-- 3. Getting the time values

SELECT @time   = GETDATE()
SELECT @year   = (SELECT CONVERT(VARCHAR(4), DATEPART(yy, @time)))
SELECT @month  = (SELECT CONVERT(VARCHAR(2), FORMAT(DATEPART(mm,@time),'00')))
SELECT @day    = (SELECT CONVERT(VARCHAR(2), FORMAT(DATEPART(dd,@time),'00')))
SELECT @hour   = (SELECT CONVERT(VARCHAR(2), FORMAT(DATEPART(hh,@time),'00')))
SELECT @minute = (SELECT CONVERT(VARCHAR(2), FORMAT(DATEPART(mi,@time),'00')))
SELECT @second = (SELECT CONVERT(VARCHAR(2), FORMAT(DATEPART(ss,@time),'00')))

-- 4. Defining the filename format

SELECT @name ='TestDatabase' + '_' + @year + @month + @day + @hour + @minute + @second

SET @pathwithname = @path + @namE + '.bak'

--5. Executing the backup command

BACKUP DATABASE [TestDatabase] 
TO DISK = @pathwithname WITH NOFORMAT, NOINIT, SKIP, REWIND, NOUNLOAD, STATS = 10
类似的可能重复(谢谢),但我相信这更多的是sql server设置:即,当您在Management Studio中创建备份文件时,它会给您提供一个默认名称以供使用(如原始帖子中所述)-该线程更多地与如何使用T-sql相关。我对能否做到这一点表示怀疑。。