Chat now with support
Chat with Support

LiteSpeed for SQL Server 8.5 - Installation Guide

xp_objectrecovery_createscript

Creates DDL scripts. You can use this extended stored procedure to restore objects other than tables by generating the DDL scripts and then running the scripts in your native SQL Server tool (such as Management Studio).

NOTE:

When using scripts, the message output results are rendered in a multi row, single column result set so other products can programmatically acquire the script without having to parse the message results. The script then remains in the message output and result set locations.Object Level Restores from TSM Backups

This topic covers:

Syntax

EXEC master.dbo.xp_objectrecovery_createscript
(@filename = 'backup_file_name') [,...n]
[, @filenumber = n]
[, @encryptionkey = 'encryption_key']
[( , @logfilename = 'log_file_name'
[, @stripedlogfilename = 'striped_log_file_name'] [,...n]
[, @logencryptionkey = 'log_encryption_key']
[, @logfilenumber = n ] ) [,...n]]
[, @difffilename = 'diff_file_name'] [,...n]
[, @difffilenumber = n]
[, @diffencryptionkey = 'diff_encrypt_key']
[, @LSM = 'option' ]
, @objectname = 'object_name'
, @objectfilename = 'object_file_name'
, @scriptfilename = 'script_file_name'
[, @type = 'object_type']
[, @onfilegroup = 'table_filegroup_name']
[, @textimageonfilegroup = 'blob_filegroup_name']
[, @disablelogprocessing = 0 | 1 ]
[, @includetableobjects = 'options']
[, @prefixtableobjects = N'prefix']
[, @suffixtableobjects = N'suffix']

Arguments

Tips:

  • To see the list of accepted arguments and data types for arguments, execute the following:
    exec master.dbo.<procedure_name> show_help

  • To convert the script for use with the command-line utilities, execute the following:
    exec master.dbo.<procedure_name> show_cmd, <xp_arguments>

@AsOnDisk

Instructs LiteSpeed to restore an in-memory table as a regular table. This argument accepts one of the following values:

  • 0—False (Default)
  • 1—True

@diffencryptionkey

Value used to generate the encryption key for the encryption algorithm. If you do not supply encryption key, then the program will not encrypt the backup. If you use the wrong encryption key, the restore will fail.

Caution: When encrypting data, take care not to lose the encryption key; a backup cannot be restored or recovered without the original encryption key.

Example of key: 'Mypassword'

Equivalent to @encryptionkey, but used for differential backups instead of full backup files.

@difffilename

Name of backup file to restore. Used for differential backups instead of full backup files. You can supply multiple instances of this argument.

@difffilenumber

Identifies the backup file within the backup set. Equivalent to @filenumber, but used for differential backups instead of full backup files.

@disablelogprocessing

Instructs LiteSpeed to skip all transaction log backups and tail log processing. This may improve read and recovery times. This argument accepts one of the following values:

  • 0—False (Default).
  • 1—True. LiteSpeed will entirely ignore any transaction log backups specified and will not process the tail log.

@encryptionkey

Value used to generate the encryption key for the encryption algorithm. If you do not supply encryption key, then the program will not encrypt the backup. If you use the wrong encryption key, the restore will fail.

Caution: When encrypting data, take care not to lose the encryption key; a backup cannot be restored or recovered without the original encryption key.

Example of key: 'Mypassword'

@filename

Specifies a backup location (e.g. C:\backups\AdventureWorks.bak). This argument accepts network destinations. You can supply multiple instances of this argument to use stripe backups.

@filenumber

Specifies the particular backup to use when recasting, restoring, extracting or reading from files with multiple appended backups. You can run xp_restore_headeronly to query the files contained within the backup set given by backup_file_name.

@FilestreamOnFileGroup

Specifies a file stream filegroup to include in the object restore.

@includetableobjects

Instructs LiteSpeed to script or recover one or more of the following:

  • Constraints—But not foreign keys
  • ForeignKeys
  • Indexes
  • Statistics
  • Triggers
  • All—All of the above

The value is a list of options, separated with commas.

@logencryptionkey

Value used to generate the encryption key for the encryption algorithm. If you do not supply encryption key, then the program will not encrypt the backup. If you use the wrong encryption key, the restore will fail.

Caution: When encrypting data, take care not to lose the encryption key; a backup cannot be restored or recovered without the original encryption key.

Example of key: 'Mypassword'

Equivalent to @encryptionkey, but used for transaction log backups.

@logfilename

Specifies location and name of the log backup file. You can supply multiple instances of this argument.

Syntax

@logfilenumber

Identifies the log backup file within the backup set. Equivalent to @filenumber, but used for log backups.

@LSM

Specifies handling for OLR LSM mapfile(s).

  • Create—Reads backup and creates a new mapfile. It will ignore attached LSM.
  • Keep—Does not delete mapfile(s) when complete.
  • Delete—Always deletes mapfile(s) when complete.

@objectfilename

Identifies a file that contains a list of objects. The format of this file is "ObjectType,ObjectName" per line.

You can create the list using xp_objectrecovery_viewcontents. xp_objectrecovery_viewcontents

@objectname

Specifies the name of the object to recover.

@onfilegroup

Filegroup with the object to restore.

@PersistLogProcessing

Instructs LiteSpeed to persist log processing, so the same database backup does not have to be processed for each Object Level Recovery operation. This argument accepts one of the following values:

  • 0—False (Default).
  • 1—True. LiteSpeed will persist transaction log backups specified and the tail log for future use. This option can offer a huge performance gain for working with databases with large tail logs that could possibly take a long time to process.

@prefixtableobjects

Adds a prefix to the names of the table's objects you selected to script or recover.

@scriptfilename

Name of the script file to save the generated SQL scripts.

@Status_FileName

Specifies the status of a backup location.

@stripedlogfilename

Specifies the striped log file name.

NOTE: The striped files for a given log backup must be specified before the next log backup set is specified.

@suffixtableobjects

Adds a suffix to the names of the table's objects you selected to script or recover.

@textimageonfilegroup

Destination TEXTIMAGE_ON filegroup name. Used to restore a BLOB (binary large object).

@type

Specifies the type of object. If you omit this parameter the object type defaults to table, so you should use this argument to recover schema objects other than tables. This argument accepts one of the following values:

  • All 1, 3
  • Database
  • Default
  • ExtendedProcedure
  • Function
  • IndexedView
  • MemoryOptimizedTable
  • PartitionFunction
  • PartitionScheme
  • Role 1
  • Rule
  • StoredProcedure
  • SystemTable
  • Table
  • TableConstraintClustered 2
  • TableConstraints 2
  • TableForeignKeys 2
  • TableIndexClustered 2
  • TableIndexes 2
  • TableStatistics2

  • TableTriggers 2
  • Trigger
  • Type
  • User 1
  • View
  • XmlSchemaCollection

Notes:
1 These values cannot be used to create scripts.
2 These values are pseudo-object types and are not real schema objects. They are only used to generate SQL scripts to alter the table, and they will be ignored when used with -V or xp_objectrecovery_viewcontents. When one of these values is used with -C or xp_objectrecovery_createscript, @ObjectName (-C) is not the name of the object, but the name of the owning table.
3 This value lists all object types, which are prefixed with "object_type, ". All pseudo-table object types will be listed even though they might not exist for the associated table.

Examples

Generate SQL script to create a database

EXEC master.dbo.xp_objectrecovery_createscript
@filename = 'C:\MSSQL\Backup\MyDB_Backup.BAK'
, @type = 'Database'
, @scriptfilename = 'C:\sql\CREATE_DATABASE.sql'

Generate SQL scripts to create a table

EXEC master.dbo.xp_objectrecovery_createscript
@filename = 'C:\MSSQL\Backup\MyDB_Backup.BAK'
, @objectname = 'dbo.Customers'
, @scriptfilename = 'C:\sql\CREATE_Customers.sql'

Generate SQL scripts to restore a table, including table's indexes, constraints and foreign keys

EXEC master.dbo.xp_objectrecovery_createscript
@filename='C:\MSSQL\Backup\MyDB_Backup.BAK'
, @type='table'
, @objectname='tbl'
, @prefixtableobjects='test_'
, @includetableobjects='indexes, constraints, foreignkeys'

Generate SQL scripts to alter a table

EXEC master.dbo.xp_objectrecovery_createscript
@filename = 'C:\MSSQL\Backup\MyDB_Backup.BAK'
, @objectname = 'dbo.Customers'
, @scriptfilename = 'C:\sql\ALTER_Customers.sql'
, @type = 'TableConstraintClustered'

Generate SQL scripts to create a view

EXEC master.dbo.xp_objectrecovery_createscript 
@filename = 'C:\MSSQL\Backup\MyDB_Backup.BAK'
, @objectname = 'dbo.Invoices'
, @scriptfilename = 'C:\sql\CREATE_VIEW_Invoices.sql'
, @type = 'View'

Generate SQL scripts for objects listed in an object file

EXEC master.dbo.xp_objectrecovery_createscript
@filename = 'C:\MSSQL\Backup\MyDB_Backup.BAK'
, @objectfilename = 'C:\temp\MyDB_All.txt'
, @scriptfilename = 'C:\sql\CREATE_VIEW_Invoices.sql'

 

Where the MyDB_ALL.txt looks like the following:

Table,dbo.Customers

Table,dbo.[Order Details]

Table,dbo.Orders

Table,dbo.Products

TableConstraintClustered,dbo.Customers

TableConstraintClustered,dbo.[Order Details]

TableConstraintClustered,dbo.Orders

TableConstraintClustered,dbo.Products

TableIndexClustered,dbo.Customers

TableIndexClustered,dbo.[Order Details]

TableIndexClustered,dbo.Orders

TableIndexClustered,dbo.Products

TableConstraints,dbo.Customers

TableConstraints,dbo.[Order Details]

TableConstraints,dbo.Orders

TableConstraints,dbo.Products

TableIndexes,dbo.Customers

TableIndexes,dbo.[Order Details]

TableIndexes,dbo.Orders

TableIndexes,dbo.Products

TableForeignKeys,dbo.Customers

TableForeignKeys,dbo.[Order Details]

TableForeignKeys,dbo.Orders

TableForeignKeys,dbo.Products

TableTriggers,dbo.Customers

TableTriggers,dbo.[Order Details]

TableTriggers,dbo.Orders

TableTriggers,dbo.Products

View,dbo.[Current Product List]

StoredProcedure,dbo.CustOrdersDetail

StoredProcedure,dbo.[Sales by Year]

StoredProcedure,dbo.[Ten Most Expensive Products]

Returns

0 (success) or non-zero (failure). Return codes represent the native error number returned from SQL Server for any errors encountered during the operation.

To capture the output message, run the following:

declare @rmsg varchar(999)
exec master..<procedure_name> <arguments>, @resultmsg=@rmsg output
select @rmsg

To capture the output message and the result code, run the following:

declare @rc int
declare @rmsg varchar(999)
exec master..<procedure_name> <arguments>, @resultmsg=@rmsg output, @resultcode=@rc output
select @rc, @rmsg

 

Related Topics

Related Documents