Transact-SQL Reference

RESTORE FILELISTONLY

Returns a result set with a list of the database and log files contained in the backup set.

Syntax

RESTORE FILELISTONLY
FROM < backup_device >
[ WITH
    [ FILE = file_number ]
    [ [ , ] PASSWORD = { password | @password_variable } ]
    [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
    [ [ , ] { NOUNLOAD | UNLOAD } ]
]

< backup_device > ::=
    {
        { 'logical_backup_device_name' | @logical_backup_device_name_var }
        | { DISK | TAPE } =
            
{ 'physical_backup_device_name' | @physical_backup_device_name_var }
    }

Arguments

<backup_device>

Specifies the logical or physical backup device(s) to use for the restore. Can be one or more of the following:

{'logical_backup_device_name' | @logical_backup_device_name_var}
Is the logical name, which must follow the rules for identifiers, of the backup device created by sp_addumpdevice from which the database is restored. If supplied as a variable (@logical_backup_device_name_var), the backup device name can be specified either as a string constant (@logical_backup_device_name_var = 'logical_backup_device_name') or as a variable of character string data type, except for the ntext or text data types.
{ DISK | TAPE } =
'physical_backup_device_name' | @physical_backup_device_name_var

Allows backups to be restored from the named disk or tape. The device types of disk and tape should be specified with the actual name (for example, complete path and file name) of the device: DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\Mybackup.dat' or TAPE = '\\.\TAPE0'. If specified as a variable (@physical_backup_device_name_var), the device name can be specified either as a string constant (@physical_backup_device_name_var = 'physical_backup_device_name') or as a variable of character string data type, except for the ntext or text data types.

If using either a network server with a UNC name or a redirected drive letter, specify a device type of disk.

FILE = file_number

Identifies the backup set to be processed. For example, a file_number of 1 indicates the first backup set and a file_number of 2 indicates the second backup set. If no file_number is supplied, the first backup set on the specified <backup_device> is assumed.

PASSWORD = { password | @password_variable }

Is the password for the backup set. PASSWORD is a character string. If a password was provided when the backup set was created, the password must be supplied to perform any restore operation from the backup set.

For more information about using passwords, see Permissions.

MEDIAPASSWORD = { mediapassword | @mediapassword_variable }

Is the password for the media set. MEDIAPASSWORD is a character string.

If a password was provided when the media set was formatted, that password must be supplied to create a backup set on that media set. In addition, that media password also must be supplied to perform any restore operation from the media set.

NOUNLOAD

Specifies that the tape is not unloaded automatically from the tape drive after a restore. NOUNLOAD remains set until UNLOAD is specified. This option is used only for tape devices.

UNLOAD

Specifies that the tape is automatically rewound and unloaded when the restore is finished. UNLOAD is set by default when a new user session is started. It remains set until NOUNLOAD is specified. This option is used only for tape devices.

Result Sets

A client can use RESTORE FILELISTONLY to obtain a list of the files contained in a backup set. This information is returned as a result set containing one row for each file.

Column name Data type Description
LogicalName nvarchar(128) Logical name of the file
PhysicalName nvarchar(260) Physical or operating-system name of the file
Type char(1) Data file (D) or a log file (L)
FileGroupName nvarchar(128) Name of the filegroup that contains the file
Size numeric(20,0) Current size in bytes
MaxSize numeric(20,0) Maximum allowed size in bytes

Permissions

Any user may use RESTORE FILELISTONLY.

In addition, the user may specify passwords for a media set, a backup set, or both. When a password is defined on a media set, it is not enough that a user is a member of appropriate fixed server and database roles to perform a backup. The user also must supply the media password to perform these operations. Similarly, restore is not allowed unless the correct media password and backup set password are specified in the restore command.

Defining passwords for backup sets and media sets is an optional feature in the BACKUP statement. The passwords will prevent unauthorized restore operations and unauthorized appends of backup sets to media using SQL Server 2000 tools, but passwords do not prevent overwrite of media with the FORMAT option.

Thus, although the use of passwords can help protect the contents of media from unauthorized access using SQL Server tools, passwords do not protect contents from being destroyed. Passwords do not fully prevent unauthorized access to the contents of the media because the data in the backup sets is not encrypted and could theoretically be examined by programs specifically created for this purpose. For situations where security is crucial, it is important to prevent access to the media by unauthorized individuals.

It is an error to specify a password if none is defined.

See Also

Backing Up and Restoring Databases

BACKUP

Data Types

RESTORE

RESTORE HEADERONLY

RESTORE LABELONLY

RESTORE VERIFYONLY

Understanding Media Sets and Families

Using Identifiers