TypeInfo object

The TypeInfo object describes a specific data types, for instance for columns or stored procedure parameters. It is used in metadata for result sets, table-valued parameters, and stored procedure parameters.


byte type: the number of the data type, as defined in the sys.types view. The base types are (with slight variations across versions):

image 34

text 35
uniqueidentifier 36
date 40
time 41
datetime2 42
datetimeoffset 43
tinyint 48
smallint 52
int 56
smalldatetime 58
real 59
money 60
datetime 61
float 62
sql_variant 98
ntext 99

bit 104

decimal 106

numeric 108

smallmoney 122

bigint 127

hierarchyid 240

geometry 240

geography 240

varbinary 165

varchar 167

binary 173

char 175

timestamp 189

nvarchar 231

nchar 239

xml 241

string typeName: the name of the data type

int varLen: the variable length of the type, if applicable.

int collationLCID: the collation. See the Microsoft documentation for details. For details on the structure of the LCID, see here.

boolean collationIgnoreCase: whether the collation ignores case.

boolean collationIgnoreAccent: whether the collation ignores accents.

boolean collationIgnoreWidth: whether the collation ignores the width of the characters.

boolean collationIgnoreKana: whether the collation should distinguish between Hiragana and Katakana.

boolean collationBinary:: if true, sort based on the bit patterns defined for each character.

boolean collationBinary2: if true, sort based on Unicode code points for Unicode data (has no effect on non-Unicode data).

boolean collationUTF8: if true, sort based on UTF-8 code points.

byte collationVersion:: the version of the collation to use.

byte collationSortId: the ID of the sorting algorithm.

Note: if collationBinary and/or collationBinary2 are true, then collationIgnoreCase, collationIgnoreAccent, collationIgnoreWidth and collationIgnoreKana have no effect. For more details, see the Microsoft documentation.

int precision: the precision of the data type (numeric/dates only)

int scale: the scale of the data type, e.g. how many decimals are supported (numeric only).

For user-defined types (UDT) - for all other types, these properties are meaningless.

String udtDbName: the name of the database containing the UDT

String udtSchemaName: the name of the schema containing the UDT

String udtTypeName: the name of the UDT

int udtMaxByteSize: the maximum size of the UDT

String udtAssemblyQualifiedName: the assembly qualified name of the UDT.

For XML data - for all other types, these properties are meaningless.

boolean xmlSchemaPresent: true if there is a schema associated with this XML data

String xmlDbName: the name of the database containing the XML schema.

String xmlOwningSchema: the name of the schema containing the XML schema.

String xmlSchemaCollection: the name of the schema collection.