Contains one row for each system-supplied and each user-defined datatype. Domains (defined by rules) and defaults are given if they exist. The rows that describe system-supplied datatypes cannot be altered. The system-supplied datatypes and their ID numbers (the contents of the name and type fields, respectively) are as follows:
| Column | Datatype | Description |
|---|---|---|
| uid | smallint | User ID of datatype creator. |
| usertype | smallint | User type ID. |
| variable | bit | Variable-length datatype is 1, otherwise, 0. |
| allownulls | bit | Indicates the default nullability for this datatype. If nullability is specified with the CREATE or ALTER TABLE statement then that value will override the default nullability for this datatype. |
| type | tinyint | Physical storage datatype. |
| length | tinyint | Physical length of datatype. |
| tdefault | int | ID of stored procedure that generates default for this datatype. |
| domain | int | ID of stored procedure that contains integrity checks for this datatype. |
| name | varchar(30) | Datatype name. |
| printfmt | varchar(255) | Reserved. |
| prec | tinyint | Level of precision for this datatype. |
| scale | tinyint | Scale for this datatype. Scale is based on precision. |
systypes clustered, unique on name
ncsystypes nonclustered, unique on usertype
| sp_addtype | sp_droptype | sp_special_columns |
| sp_bindefault | sp_dropuser | sp_sproc_columns |
| sp_bindrule | sp_help | sp_unbindefault |
| sp_columns | sp_rename | sp_unbindrule |
| sp_datatype_info |