Contains one row for each system-supplied and each user-defined data type. This table is stored in each database.
These are the system-supplied data types and their ID numbers.
| Column name | Data type | Description |
|---|---|---|
| name | sysname | Data type name. |
| xtype | tinyint | Physical storage type. |
| status | tinyint | For internal use only. |
| xusertype | smallint | Extended user type. |
| length | smallint | Physical length of data type. |
| xprec | tinyint | Internal precision, as used by server. (Not to be used in queries.) |
| xscale | tinyint | Internal scale, as used by server. (Not to be used in queries.) |
| tdefault | int | ID of stored procedure that contains integrity checks for this data type. |
| domain | int | ID of stored procedure that contains integrity checks for this data type. |
| uid | smallint | User ID of data type creator. |
| reserved | smallint | For internal use only. |
| usertype | smallint | User type ID. |
| variable | bit | Variable-length data type is 1; otherwise, 0. |
| allownulls | bit | Indicates the default nullability for this data type. If nullability is specified with CREATE or ALTER TABLE, then that value overrides the default nullability for this data type. |
| type | tinyint | Physical storage data type. |
| printfmt | varchar(255) | Reserved. |
| prec | smallint | Level of precision for this data type. |
| scale | tinyint | Scale for this data type (based on precision). |