在 SQL Server 中,当通过管理工作室进行备份时,可以在可靠性下选择一个选项,该选项显示“完成后验证备份”。我如何用 T-SQL 编写它?
下面是生成的脚本:
backup database [AdventureWorksDW2012] to disk = N'D:\SQLServer2012\MSSQL11.SQL2012\MSSQL\Backup\AdventureWorksDW2012.bak'
with NOFORMAT
,INIT
,name = N'AdventureWorksDW2012-Full Database Backup'
,SKIP
,NOREWIND
,NOUNLOAD
,STATS = 10
go
declare @backupSetId as int
select @backupSetId = position
from msdb..backupset
where database_name = N'AdventureWorksDW2012'
and backup_set_id = (
select max(backup_set_id)
from msdb..backupset
where database_name = N'AdventureWorksDW2012'
)
if @backupSetId is null
begin
raiserror (
N'Verify failed. Backup information for database ''AdventureWorksDW2012'' not found.'
,16
,1
)
end
restore VERIFYONLY
from disk = N'D:\SQLServer2012\MSSQL11.SQL2012\MSSQL\Backup\AdventureWorksDW2012.bak'
with file = @backupSetId
,NOUNLOAD
,NOREWIND
go
您可以使用ola.hallengren备份脚本并在从 Ola 的链接创建所需脚本后安排作业:
在工作中你可以使用:
正如您在此处看到的,Verify='Y' 除了备份用户数据库外还将完成这项工作。
最好的方法是上面的方法,因为您可以在表中记录历史记录以及通过在上面的代码中使用额外参数来完成的验证:
ie
@LogToTable='Y'
which Log commands to the table dbo.CommandLog.除此之外,如果您仍然喜欢 T-SQL,那将是
下面是生成的脚本: