Share via


2.1.2.124 S023, Basic structured types

V0160:

The specification states the following:

 Subclause 5.4, "Names and identifiers":
  
 <schema-resolved user-defined type name> ::=
 <user-defined type name>
  
 <user-defined type name> ::=
 [ <schema name> <period> ] <qualified identifier>
  
 <attribute name> ::=
 <identifier>
  
 ...
  
 Conformance Rules
  
 Without Feature S023, "Basic structured types", conforming SQL language shall not contain a <attribute name>.
  
 Subclause 6.1, "<data type>":
  
 <path-resolved user-defined type name> ::=
 <user-defined type name>
  
 ...
  
 Conformance Rules
  
 Without Feature S023, "Basic structured types", conforming SQL language shall not contain a <path-resolved user-defined type name> that identifies a structured type.
  
 Subclause 6.17, "<method invocation>":
  
 <method invocation> ::=
 <direct invocation>
 | <generalized invocation>
  
 <direct invocation> ::=
 <value expression primary> <period> <method name> [ <SQL argument list> ]
  
 <generalized invocation> ::=
 <left paren> <value expression primary> AS <data type> <right paren>
 <period> <method name> [ <SQL argument list> ]
  
 ...
  
 Conformance Rules
  
 Without Feature S023, "Basic structured types", conforming SQL language shall not contain a <method invocation>.
  
 Subclause 6.19, "<new specification>":
  
 <new specification> ::=
 NEW <path-resolved user-defined type name> <SQL argument list>
  
 ...
  
 Conformance Rules
  
 Without Feature S023, "Basic structured types", conforming SQL language shall not contain a <new specification>.
  
 Subclause 10.4, "<routine invocation>":
  
 <generalized expression> ::=
 <value expression> AS <path-resolved user-defined type name>
  
 ...
  
 Conformance Rules
  
 Without Feature S023, "Basic structured types", conforming SQL language shall not contain a <generalized expression>.
  
 Subclause 11.51, "<user-defined type definition>":
  
 <member list> ::=
 <left paren> <member> [ { <comma> <member> }... ] <right paren>
  
 ...
  
 <method specification list> ::=
 <method specification> [ { <comma> <method specification> }... ]
  
 ...
  
 Conformance Rules
  
 Without Feature S023, "Basic structured types", conforming SQL language shall not contain a <member list>.
  
 ...
  
 Without Feature S023, "Basic structured types", conforming SQL language shall not contain a <method specification list>.
  
 Subclause 11.52, "<attribute definition>":
  
 <attribute definition> ::=
 <attribute name> <data type>
 [ <attribute default> ]
 [ <collate clause> ]
  
 ...
  
 Conformance Rules
  
 Without Feature S023, "Basic structured types", conforming SQL language shall not contain an <attribute definition>.
  
 Subclause 11.60, "<SQL-invoked routine>":
  
 <method specification designator> ::=
 SPECIFIC METHOD <specific method name>
 | [ INSTANCE | STATIC | CONSTRUCTOR ]
 METHOD <method name> <SQL parameter declaration list>
 [ <returns clause> ]
 FOR <schema-resolved user-defined type name>
  
 ...
  
 Conformance Rules
  
 Without Feature S023, "Basic structured types", conforming SQL language shall not contain a <method specification designator>.
  
 Subclause 12.3, "<privileges>":
  
 <privileges> ::=
 <object privileges> ON <object name>
  
 <object name> ::=
 [ TABLE ] <table name>
 | DOMAIN <domain name>
 | COLLATION <collation name>
 | CHARACTER SET <character set name>
 | TRANSLATION <transliteration name>
 | TYPE <schema-resolved user-defined type name>
 | SEQUENCE <sequence generator name>
 | <specific routine designator>
  
 <object privileges> ::=
 ALL PRIVILEGES
 | <action> [ { <comma> <action> }... ]
  
 <action> ::=
 SELECT
 | SELECT <left paren> <privilege column list> <right paren>
 | SELECT <left paren> <privilege method list> <right paren>
 | DELETE
 | INSERT [ <left paren> <privilege column list> <right paren> ]
 | UPDATE [ <left paren> <privilege column list> <right paren> ]
 | REFERENCES [ <left paren> <privilege column list> <right paren> ]
 | USAGE
 | TRIGGER
 | UNDER
 | EXECUTE
  
 ...
  
 Conformance Rules
  
 Without Feature S023, "Basic structured types", conforming SQL language shall not contain a <privileges> that contains an <action> that contains UNDER and that contains an <object name> that contains a <schema-resolved user-defined type name> that identifies a structured type.

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

Transact-SQL does not support this feature. The CREATE TYPE command in Transact-SQL can create only scalar types.