IF OBJECT_ID( N'tempdb..#HeaderOnlyData', 'U' ) IS NOT NULL DROP TABLE #HeaderOnlyData
CREATE TABLE #HeaderOnlyData
(
BackupName nvarchar(128) ,-- 备份集名称
BackupDescription nvarchar(255), --备份集说明
BackupType smallint ,--备份类型
ExpirationDate datetime , --备份集的过期时间
Compressed int, --是否使用基于软件的压缩对备份集进行压缩
Position smallint , -- 备份集在卷中的位置
DeviceType tinyint ,-- 与用于备份操作的设备对应的编号
UserName nvarchar(128) ,--执行备份操作的用户名
ServerName nvarchar(128), --写入备份集的服务器名称
DatabaseName nvarchar(128),-- 已备份的数据库名称
DatabaseVersion int , --从其中创建备份的数据库的版本
DatabaseCreationDate datetime , -- 数据库的创建日期和时间
BackupSize numeric(20,0), -- 备份大小
FirstLSN numeric(25,0),--备份集中第一个日志记录的日志序列号。
LastLSN numeric(25,0),--备份集之后的下一条日志记录的日志序列号
CheckpointLSN numeric(25,0) , -- 创建备份时最后一个检查点的日志序号。
DatabaseBackupLSN numeric(25,0) ,-- 最近的数据库完整备份的日志序列号
BackupStartDate datetime , -- 备份操作的开始日期和时间。
BackupFinishDate datetime ,-- 备份操作的完成日期和时间。
SortOrder smallint , -- 服务器排列次序。该列仅对数据库备份有效。提供该列是为了向后兼容。
CodePage smallint ,-- 服务器使用的服务器代码页或字符集。
UnicodeLocaleId int, -- 用于 Unicode 字符数据排序的服务器 Unicode 区域设置 ID 配置选项
UnicodeComparisonStyle int , --服务器 Unicode 比较风格配置选项,可提供对 Unicode 数据排序的额外控制
CompatibilityLevel tinyint ,-- 从其中创建备份的数据库兼容级别设置。
SoftwareVendorId int , -- 软件供应商标识号。对于 SQL Server,该号码是 4608(用十六进制表示是 0x1200)。
SoftwareVersionMajor int ,--创建备份集的服务器主要版本号。
SoftwareVersionMinor int ,-- 创建备份集的服务器次要版本号。
SoftwareVersionBuild int ,-- 创建备份集的服务器内部版本号。
MachineName nvarchar(128) , -- 执行备份操作的计算机名称。
Flags int , -- 设置为 1 时单个标志位的含义:1 = 日志备份包含大容量日志记录操作。2 = 快照备份。4 = 备份时数据库为只读。8 = 备份时数据库处于单用户模式。16 = 备份包含备份校验和。
--32 = 备份时数据库损坏,但要求备份操作继续执行,不考虑发生的错误。
--64 = 结尾日志备份。
--128 = 包含不完整元
BindingID uniqueidentifier ,--数据库的绑定 ID
RecoveryForkID uniqueidentifier ,-- 恢复分叉结尾的 ID。此列与 backupset 表中的 last_recovery_fork_guid 相对应。
Collation nvarchar(128) ,--数据库使用的排序规则。
FamilyGUID uniqueidentifier ,--创建时的原始数据库 ID。恢复数据库时,此值保持不变。
HasBulkLoggedData bit ,-- 1 = 包含大容量日志记录操作的日志备份。
IsSnapshot bit ,--1 = 快照备份
IsReadOnly bit ,-- 1 = 备份时数据库为只读
IsSingleUser bit ,-- 1 = 备份时数据库处于单用户模式
HasBackupChecksums bit,-- 1 = 备份包含备份校验和
IsDamaged bit,-- 1 = 备份时数据库损坏,但要求备份操作继续执行,不考虑发生的错误
BeginsLogChain bit,--1 = 这是一个连续的日志备份链中的第一个环节。日志链的开始处是创建数据库后所做的第一个日志备份,或者是数据库从简单模式切换到完整模式或大容量日志恢复模式时所做的第一个日志备份
HasIncompleteMetaData bit,-- 1 = 包含不完整元数据的结尾日志备份
IsForceOffline bit, -- 1 = 采用 NORECOVERY 的备份;数据库采用脱机备份。
IsCopyOnly bit ,-- 1 = 仅复制备份
FirstRecoveryForkID uniqueidentifier ,-- 起始恢复分叉的 ID。此列与 backupset 中的 first_recovery_fork_guid 相对应
ForkPointLSN numeric(25,0), -- 如果 FirstRecoveryForkID 不等于 RecoveryForkID,则此值为分叉点的日志序列号。否则,此值为 NULL
RecoveryModel nvarchar(60),-- 数据库的恢复模式,可以是下列值之一:FULL BULK-LOGGED SIMPLE
DifferentialBaseLSN numeric(25,0),-- 对于单基准的差异备份,该值等于差异基准的 FirstLSN;大于或等于
DifferentialBaseGUID uniqueidentifier ,-- 对于单基准的差异备份,该值为差异基准的唯一标识符
BackupTypeDescription nvarchar(60) ,-- 字符串形式的备份类型有以下几种
BackupSetGUID uniqueidentifier ,-- 备份集的唯一标识号,可以根据此标识号在介质上标识备份集。
CompressedBackupSize int -- 备份集的字节计数
)
INSERT INTO #HeaderOnlyData
EXEC ('RESTORE HEADERONLY FROM DISK=''C:/XML/BAK/test4.bak''')