sys.table_types (Transact-SQL)

Applies to: yesSQL Server (all supported versions) YesAzure SQL Database

Displays properties of user-defined table types in SQL Server. A table type is a type from which table variables or table-valued parameters could be declared. Each table type has a type_table_object_id that is a foreign key into the sys.objects catalog view. You can use this ID column to query various catalog views, in a way that is similar to an object_id column of a regular table, to discover the structure of the table type such as its columns and constraints.

Column name Data type Description
<inherited columns> For a list of columns that this view inherits, see sys.types (Transact-SQL).
type_table_object_id int Object identification number. This number is unique within a database.
is_memory_optimized bit Applies to: SQL Server 2014 (12.x) and later.

The following are the possible values:

0 = is not memory optimized

1 = is memory optimized

A value of 0 is the default value.

Table types are always created with DURABILITY = SCHEMA_ONLY. Only the schema is persisted on disk.


The visibility of the metadata in catalog views is limited to securables that a user either owns or on which the user has been granted some permission. For more information, see Metadata Visibility Configuration.

See Also

Object Catalog Views (Transact-SQL)
Use Table-Valued Parameters (Database Engine)
In-Memory OLTP (In-Memory Optimization)