sp_special_columns

Description

Retrieves the following information about columns within a specified table or view:

Syntax

sp_special_columns table_name [, table_owner]
 [, table_qualifier] [, col_type]

Parameters

table_name

is the name of the table. Views, aliases, and wildcard-character search patterns are not supported.

table_owner

is the owner of the table. Wildcard-character search patterns are not supported. If you do not specify this parameter, sp_special_columns looks first for a table owned by the current user and then for a table owned by the database owner.

table_qualifier

is ignored. Leave blank or set to NULL.

col_type

is a value that requests information about columns of a specific type as follows:

  • R returns information about columns with values that uniquely identify any row in the table.

  • V returns information about columns with values that are automatically generated by a target each time a row is inserted or updated.

Usage


Results

sp_special_columns returns information about the columns that uniquely identify a row in a table.

The result set consists of a row for each column of an index that uniquely identifies each row of the table. If there are multiple unique indexes on a table, the one that is described by the result set is the first that exists in the following list:

The result set is ordered by the column name in the index.

The lengths for varchar columns shown in the result set tables are maximums; the actual lengths depend on the target database.

Table 4-14 shows the result set for sp_special_columns.

Table 4-14: Result set for sp_special_columns

Column

Datatype

Description

SCOPE

smallint

NOT NULL

Actual scope of the row ID:

  • 0 SQL_SCOPE_CURROW

  • 1 SQL_SCOPE_TRANSACTION

COLUMN_NAME

varchar(128)

NOT NULL

Column name

DATA_TYPE

smallint

NOT NULL

ODBC datatype to which all columns of this type are mapped

TYPE_NAME

varchar(128)

NOT NULL

Name of the target database datatype that corresponds to the ODBC datatype in the DATA_TYPE column

PRECISION

int

Maximum precision for the datatype in the target database; NULL if precision is not applicable

LENGTH

int

Length of the column in bytes

SCALE

smallint

Number of digits to the right of the decimal point; NULL if scale is not applicable

PSEUDO_COLUMN

smallint

Indicates whether the column is a pseudo-column; the access service always returns 0 SQL_PC_UNKNOWN