Script Method (Table Object)
This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.
The Script method generates a Transact-SQL command batch that can be used to re-create the Microsoft SQL Server component referenced by the SQL Distributed Management Objects (SQL-DMO) object.
Syntax
object
.Script( [ ScriptType ] [, ScriptFilePath ] [, NewName ] [, Script2Type ] )as String
Parts
- object
Expression that evaluates to an object in the Applies To list.
- ScriptType
Optional. A long integer that overrides default scripting behavior as described in Settings.
- ScriptFilePath
Optional. A string that specifies an operating system file as an additional target for the generated Transact-SQL script.
- NewName
Optional. A string that specifies a new name for the referenced table.
- Script2Type
Optional. A long integer that overrides default scripting behavior as described in Settings.
Prototype (C/C++)
HRESULT Script(
SQLDMO_SCRIPT_TYPE ScriptType = SQLDMOScript_Default,
SQLDMO_LPCSTR ScriptFilePath = NULL,
SQLDMO_LPCSTR NewName = NULL,
SQLDMO_LPBSTR ScriptText = NULL,
SQLDMO_SCRIPT2_TYPE Script2Type = SQLDMOScript2_Default);
Note
SQL-DMO strings are always returned as OLE BSTR objects. A C/C++ application obtains a reference to the string. The application must release the reference using SysFreeString.
Settings
When setting the ScriptType argument specifying multiple behaviors, combine values using an OR logical operator. Use these values to set ScriptType.
Constant | Value | Description |
---|---|---|
SQLDMOScript_AppendToFile |
256 |
Object Script method only. Append to indicated output file. By default, Script method overwrites existing file. |
SQLDMOScript_Bindings |
128 |
Generate sp_bindefault and sp_bindrule statements. |
SQLDMOScript_/ClusteredIndexes |
8 |
Generate Transact-SQL defining clustered indexes. Applies only when scripting references a SQL Server table. |
SQLDMOScript_Default |
4 |
SQLDMOScript_PrimaryObject. |
SQLDMOScript_DRI_All |
532676608 |
All values defined as SQLDMOScript_DRI_... combined using an OR logical operator. |
SQLDMOScript_DRI_/AllConstraints |
520093696 |
SQLDMOScript_DRI_Checks, SQLDMOScript_DRI_Defaults, SQLDMOScript_DRI_ForeignKeys, SQLDMOScript_DRI_PrimaryKey, and SQLDMOScript_DRI_UniqueKeys combined using an OR logical operator. |
SQLDMOScript_DRI_AllKeys |
469762048 |
SQLDMOScript_DRI_ForeignKeys, SQLDMOScript_DRI_PrimaryKey, SQLDMOScript_DRI_UniqueKeys combined using an OR logical operator. |
SQLDMOScript_DRI_Checks |
16777216 |
Generated script creates column-specified CHECK constraints. Directs scripting when declarative referential integrity establishes dependency relationships. Applies only when scripting references a SQL Server table. |
SQLDMOScript_DRI_/Clustered |
8388608 |
Generated script creates clustered indexes. Directs scripting when declarative referential integrity establishes dependency relationships. Applies only when scripting references a SQL Server table. |
SQLDMOScript_DRI_Defaults |
33554432 |
Generated script includes column-specified defaults. Directs scripting when declarative referential integrity establishes dependency relationships. Applies only when scripting references a SQL Server table. |
SQLDMOScript_DRI_/ForeignKeys |
134217728 |
Generated script creates FOREIGN KEY constraints. Directs scripting when declarative referential integrity establishes dependency relationships. Applies only when scripting references a SQL Server table. |
SQLDMOScript_DRI_/NonClustered |
4194304 |
Generated script creates nonclustered indexes. Directs scripting when declarative referential integrity establishes dependency relationships. Applies only when scripting references a SQL Server table. |
SQLDMOScript_DRI_/PrimaryKey |
268435456 |
Generated script creates PRIMARY KEY constraints. Directs scripting when declarative referential integrity establishes dependency relationships. Applies only when scripting references a SQL Server table. |
SQLDMOScript_DRI_/UniqueKeys |
67108864 |
Generated script creates candidate keys defined using a unique index. Directs scripting when declarative referential integrity establishes dependency relationships. Applies only when scripting references a SQL Server table. |
SQLDMOScript_DRIIndexes |
65536 |
When SQLDMOScript_NoDRI is specified, script PRIMARY KEY constraints using a unique index to implement the declarative referential integrity. Applies only when scripting references a SQL Server table. |
SQLDMOScript_/DRIWithNoCheck |
536870912 |
When using SQLDMOScript_DRI_Checks, or SQLDMOScript_DRI_ForeignKeys, generated script includes the WITH NOCHECK clause optimizing constraint creation. Applies only when scripting references a SQL Server table. |
SQLDMOScript_Drops |
1 |
Generate Transact-SQL to remove referenced component. Script tests for existence prior attempt to remove component. |
SQLDMOScript_/IncludeHeaders |
131072 |
Generated script is prefixed with a header containing date and time of generation and other descriptive information. |
SQLDMOScript_/IncludeIfNotExists |
4096 |
Transact-SQL creating a component is prefixed by a check for existence. When script is executed, component is created only when a copy of the named component does not exist. |
SQLDMOScript_Indexes |
73736 |
SQLDMOScript_ClusteredIndexes, SQLDMOScript_NonClusteredIndexes, and SQLDMOScript_DRIIndexes combined using an OR logical operator. Applies to both table and view objects. |
SQLDMOScript_/NoCommandTerm |
32768 |
Individual Transact-SQL statements in the script are not delimited using the connection-specific command terminator. By default, individual Transact-SQL statements are delimited. |
SQLDMOScript_NoDRI |
512 |
Generated Transact-SQL statements do not include any clauses defining declarative referential integrity constraints. Applies only when scripting references a SQL Server table. Only use when script will execute on an instance of SQL SERVER version 4.21a. |
SQLDMOScript_NoIdentity |
1073741824 |
Generated Transact-SQL statements do not include definition of identity property, seed, and increment. Applies only when scripting references a SQL Server table. |
SQLDMOScript_/NonClusteredIndexes |
8192 |
Generate Transact-SQL defining nonclustered indexes. Applies only when scripting references a SQL Server table. |
SQLDMOScript_/ObjectPermissions |
2 |
Include Transact-SQL privilege defining statements when scripting database objects. |
SQLDMOScript_OwnerQualify |
262144 |
Object names in Transact-SQL generated to remove an object are qualified by the owner of the referenced object. Transact-SQL generated to create the referenced object qualify the object name using the current object owner. |
SQLDMOScript_PrimaryObject |
4 |
Generate Transact-SQL creating the referenced component. |
SQLDMOScript_/TimestampToBinary |
524288 |
When scripting object creation for a table or user-defined data type, convert specification of timestamp data type to binary(8). |
SQLDMOScript_ToFileOnly |
64 |
Most SQL-DMO object scripting methods specify both a return value and an optional output file. When used, and an output file is specified, the method does not return the script to the caller, but only writes the script to the output file. |
SQLDMOScript_Triggers |
16 |
Generate Transact-SQL defining triggers. Applies only when scripting references a SQL Server table. |
SQLDMOScript_/UDDTsToBaseType |
1024 |
Convert specification of user-defined data types to the appropriate SQL Server base data type. Applies only when scripting references a SQL Server table. |
SQLDMOScript_/UseQuotedIdentifiers |
-1 |
Use quote characters to delimit identifier parts when scripting object names. |
When setting the Script2Type argument specifying multiple behaviors, combine values using an OR logical operator. Use these values to set Script2Type.
Constant | Value | Description |
---|---|---|
SQLDMOScript2_AnsiFile |
2 |
Create output file as a multibyte character text file. Code page 1252 is used to determine character meaning. |
SQLDMOScript2_AnsiPadding |
1 |
Command batch includes Transact-SQL statements SET ANSI_PADDING ON and SET ANSI_PADDDING OFF statements before and after CREATE TABLE statements in the generated script. |
SQLDMOScript2_Default |
0 |
Default. No scripting options specified. |
SQLDMOScript2_/ExtendedProperty |
4194304 |
Include extended property scripting as part of object scripting. |
SQLDMOScript2_/FullTextIndex |
524288 |
Command batch includes statements defining Microsoft Search full-text indexing. |
SQLDMOScript2_NoCollation |
8388608 |
Do not script the collation clause if source is an instance of SQL Server later than version 7.0. The default is to generate collation. |
SQLDMOScript2_NoFG |
16 |
Command batch does not include 'ON <filegroup>' clause that directs filegroup use. |
SQLDMOScript2_/NoWhatIfIndexes |
512 |
Command batch does not include CREATE STATISTICS statements. |
SQLDMOScript2_UnicodeFile |
4 |
Create output file as a Unicode character text file. |
Returns
A Transact-SQL command batch as a string.
Remarks
The Script method generates a Transact-SQL command batch that defines an existing SQL Server table. The Table object supports command batch generation when using the object to define a new table. Use the GenerateSQL method when capturing new table definition. Use the Script method when capturing an image of an exiting table. When using the Script method as part of an application process re-creating a table, specify SQLDMOScript_Drops in the ScriptType argument to include a drop of the existing table in the command batch.
Note
SQL-DMO object scripting methods are fully compatible with an instance of SQL Server version 7.0. However, database compatibility level affects Transact-SQL command batch contents.
When scripting a database with a compatibility level of less than 7.0, or when scripting any of its objects, the resulting Transact-SQL command batch includes only keywords reserved by that level.
Transact-SQL command syntax is always compliant with an instance of SQL Server 7.0. Where provided, you can use optional scripting arguments, such as SQLDMOScript2_NoFG to remove some syntax of an instance of SQL Server version 7.0.