RESTORE 语句 - FILELISTONLY (Transact-SQL)

适用于:SQL ServerAzure SQL 托管实例

返回由 SQL Server 中的备份集内包含的数据库和日志文件列表组成的结果集。

注意

有关参数的说明,请参阅 RESTORE 参数 (Transact-SQL)

Transact-SQL 语法约定

语法

RESTORE FILELISTONLY   
FROM <backup_device>   
[ WITH   
 {  
--Backup Set Options  
   FILE = { backup_set_file_number | @backup_set_file_number }   
 | PASSWORD = { password | @password_variable }   
 | [ METADATA_ONLY | SNAPSHOT ] [ DBNAME = { database_name | @database_name_variable } ]
  
--Media Set Options  
 | MEDIANAME = { media_name | @media_name_variable }   
 | MEDIAPASSWORD = { mediapassword | @mediapassword_variable }  
  
--Error Management Options  
 | { CHECKSUM | NO_CHECKSUM }   
 | { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }  
  
--Tape Options  
 | { REWIND | NOREWIND }   
 | { UNLOAD | NOUNLOAD }    
 } [ ,...n ]  
]  
[;]  
  
<backup_device> ::=  
{   
   { logical_backup_device_name |  
      @logical_backup_device_name_var }  
   | { DISK | TAPE | URL } = { 'physical_backup_device_name' |  
       @physical_backup_device_name_var }   
}  

注意

URL 是用于为 Microsoft Azure Blob 存储指定位置和文件名的格式,从 SQL Server 2012 (11.x) SP1 CU2 开始受支持。 虽然 Microsoft Azure 存储是一种服务,不过实现与磁盘和磁带类似,从而可为所有三种设备提供一致且无缝的还原体验。

参数

有关 RESTORE FILELISTONLY 参数的说明,请参阅 RESTORE 参数 (Transact-SQL)

结果集

客户端可以使用 RESTORE FILELISTONLY 获得备份集中所含文件的列表。 此信息以结果集的形式返回,在结果集中每个文件占一行。

列名称 数据类型 说明
LogicalName nvarchar(128) 文件的逻辑名称。
PhysicalName nvarchar(260) 文件的物理名称或操作系统名称。
类型 char(1) 文件的类型,其中包括:

L = Microsoft SQL Server 日志文件

D = SQL Server 数据文件

F = 全文目录

S = 文件流、FileTable 或内存中 OLTP 容器
FileGroupName nvarchar(128) NULL 包含文件的文件组的名称。
大小 numeric(20,0) 当前大小(以字节为单位)。
MaxSize numeric(20,0) 允许的最大大小(以字节为单位)。
FileID bigint 文件标识符,在数据库中唯一。
CreateLSN numeric(25,0) 创建文件时的日志序列号。
DropLSN numeric(25,0) NULL 删除文件时的日志序列号。 如果文件尚未删除,该值为 NULL。
UniqueID uniqueidentifier 文件的全局唯一标识符。
ReadOnlyLSN numeric(25,0) NULL 包含该文件的文件组从读写属性更改为只读属性(最新更改)时的日志序列号。
ReadWriteLSN numeric(25,0) NULL 包含该文件的文件组从只读属性更改为读写属性(最新更改)时的日志序列号。
BackupSizeInBytes bigint 此文件的备份的大小(字节)。
SourceBlockSize int 包含文件的物理设备(并非备份设备)的块大小(以字节为单位)。
FileGroupID int 文件组的 ID。
LogGroupGUID uniqueidentifier NULL NULL。
DifferentialBaseLSN numeric(25,0) NULL 对于差异备份,日志序列号大于或等于 DifferentialBaseLSN 的更改都包含在差异中

对于其他备份类型,该值为 NULL。
DifferentialBaseGUID uniqueidentifier NULL 对于差异备份,该值是差异基准的唯一标识符。

对于其他备份类型,该值为 NULL。
IsReadOnly bit 1 = 文件为只读文件。
IsPresent bit 1 = 文件出现在备份中。
TDEThumbprint varbinary(32) NULL 显示数据库加密密钥的指纹。 加密程序的指纹是带有加密密钥的证书的 SHA-1 哈希。 有关数据库加密的信息,请参阅透明数据加密 (TDE)
SnapshotURL nvarchar(360) NULL 适用于:SQL Server (SQL Server 2016 (13.x) (CU1) 至当前版本。

FILE_SNAPSHOT 备份中包含的数据库文件的 Azure 快照的 URL。 如果没有 FILE_SNAPSHOT 备份,则返回 NULL。

安全性

在备份时,可以根据需要为介质集、备份集或这两者指定密码。 如果已经在介质集或备份集上定义了密码,则必须在 RESTORE 语句中指定正确的密码。 这些密码可防止未经授权而使用 Microsoft SQL Server 工具执行还原操作以及向介质追加备份集。 但是,密码不会阻止使用 BACKUP 语句的 FORMAT 选项覆盖介质。

重要

此密码提供的安全性较低。 它旨在防止经过授权的用户或未经授权的用户使用 SQL Server 工具执行不正确的还原操作。 但是不能防止通过其他方式或通过替换密码来读取备份数据。 在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 保护备份的最佳做法是将备份磁带存储在安全的位置,或者备份到由适当的访问控制列表 (ACL) 保护的磁盘文件。 ACL 应设置在创建备份的根目录下。

权限

从 SQL Server 2008 (10.0.x) 开始,获取有关备份集或备份设备的信息需要具有 CREATE DATABASE 权限。 有关详细信息,请参阅 GRANT 数据库权限 (Transact-SQL)

示例

下面的示例从名为 AdventureWorksBackups 的备份设备中返回信息。 该示例使用 FILE 选项指定设备中的第二个备份集。

RESTORE FILELISTONLY FROM AdventureWorksBackups   
   WITH FILE=2;  
GO  

另请参阅

BACKUP (Transact-SQL)
介质集、介质簇和备份集 (SQL Server)
RESTORE REWINDONLY (Transact-SQL)
RESTORE VERIFYONLY (Transact-SQL)
RESTORE (Transact-SQL)
备份历史记录和标头信息 (SQL Server)