TYPEPROPERTY (Transact-SQL)
Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Returns information about a data type.
Transact-SQL syntax conventions
Syntax
TYPEPROPERTY (type , property)
Arguments
type
Is the name of the data type.
property
Is the type of information to be returned for the data type. property can be one of the following values.
Property | Description | Value returned |
---|---|---|
AllowsNull | Data type allows for null values. | 1 = True 0 = False NULL = Data type not found. |
OwnerId | Owner of the type. Note: The schema owner is not necessarily the type owner. |
Nonnull = The database user ID of the type owner. NULL = Unsupported type, or type ID is not valid. |
Precision | Precision for the data type. | The number of digits or characters. -1 = xml or large value data type NULL = Data type not found. |
Scale | Scale for the data type. | The number of decimal places for the data type. NULL = Data type is not numeric or not found. |
UsesAnsiTrim | ANSI padding setting was ON when the data type was created. | 1 = True 0 = False NULL = Data type not found, or it is not a binary or string data type. |
Return Types
int
Exceptions
Returns NULL on error or if a caller does not have permission to view the object.
In SQL Server, a user can only view the metadata of securables that the user owns or on which the user has been granted permission. This means that metadata-emitting, built-in functions such as TYPEPROPERTY may return NULL if the user does not have any permission on the object. For more information, see Metadata Visibility Configuration.
Examples
A. Identifying the owner of a data type
The following example returns the owner of a data type.
SELECT TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'OwnerId') AS owner_id, name, system_type_id, user_type_id, schema_id
FROM sys.types;
B. Returning the precision of the tinyint data type
The following example returns the precision or number of digits for the tinyint
data type.
SELECT TYPEPROPERTY( 'tinyint', 'PRECISION');
See Also
TYPE_ID (Transact-SQL)
TYPE_NAME (Transact-SQL)
COLUMNPROPERTY (Transact-SQL)
Metadata Functions (Transact-SQL)
OBJECTPROPERTY (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
sys.types (Transact-SQL)