RESTORE 陳述式 - FILELISTONLY (Transact-SQL)

適用於:SQL ServerAzure SQL 受控執行個體

傳回由 SQL Server 中備份組所包含的資料庫和記錄檔清單組成的結果集。

注意

如需引數的描述,請參閱 RESTORE 引數 (Transact-SQL)

Transact-SQL 語法慣例

Syntax

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 = FileStream、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 檔案群組的識別碼。
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)