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

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

对于其他备份类型,该值为 NULL。
IsReadOnly bit 1 = 文件为只读文件。
IsPresent bit 1 = 文件出现在备份中。
TDEThumbprint varbinary(32) 显示数据库加密密钥的指纹。 加密程序的指纹是带有加密密钥的证书的 SHA-1 哈希。 有关数据库加密的信息,请参阅透明数据加密 (TDE)
SnapshotURL 恩瓦尔查尔(360) 适用于: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)