S011, Distinct data types


The specification states the following:

 Subclause 11.51, "<user-defined type definition>": When <representation> is <predefined type>
 <user-defined type definition> ::=
 CREATE TYPE <user-defined type body>
 <user-defined type body> ::=
 <schema-resolved user-defined type name>
 [ <subtype clause> ]
 [ AS <representation> ]
 [ <user-defined type option list> ]
 [ <method specification list> ]
 <representation> ::=
 <predefined type>
 | <member list>
 Subclause 11.59, "<drop data type statement>":
 <drop data type statement> ::=
 DROP TYPE <schema-resolved user-defined type name> <drop behavior>

Microsoft SQL Server 2008 R2 and Microsoft SQL Server 2012 vary as follows:

Transact-SQL does not support this feature. However, Transact-SQL supports user-defined alias types with some equivalent functionality. The user-defined types (UDTs) are not strongly typed, and only the operations that are supported by a UDT's base type are supported.

See [ISO/IEC9075-2:2011] for the definition of "user-defined type (UDT)".