2.1.2.88 F641, Row and table constructors
V0124:
The specification states the following:
-
Subclause 7.1, "<row value constructor>": <explicit row value constructor> ::= <left paren> <row value constructor element> <comma> <row value constructor element list> <right paren> | ROW <left paren> <row value constructor element list> <right paren> | <row subquery> ... <row value constructor element> ::= <value expression> <contextually typed row value constructor> ::= <common value expression> | <boolean value expression> | <contextually typed value specification> | <left paren> <contextually typed value specification> <right paren> | <left paren> <contextually typed row value constructor element> <comma> <contextually typed row value constructor element list> <right paren> | ROW <left paren> <contextually typed row value constructor element list> <right paren> <contextually typed row value constructor element list> ::= <contextually typed row value constructor element> [ { <comma> <contextually typed row value constructor element> }... ] ... Conformance Rules Without Feature F641, "Row and table constructors", conforming SQL language shall not contain an <explicit row value constructor> that is not simply contained in a <table value constructor> and that contains more than one <row value constructor element>. Without Feature F641, "Row and table constructors", conforming SQL language shall not contain an <explicit row value constructor> that is a <row subquery>. Without Feature F641, "Row and table constructors", conforming SQL language shall not contain a <contextually typed row value constructor> that is not simply contained in a <contextually typed table value constructor> and that contains more than one <row value constructor element>. Without Feature F641, "Row and table constructors", conforming SQL language shall not contain a <contextually typed row value constructor> that is a <row subquery>. Subclause 7.15, "<subquery>": <row subquery> ::= <subquery> ... <subquery> ::= <left paren> <query expression> <right paren> Subclause 7.3, "<table value constructor>": <table value constructor> ::= VALUES <row value expression list> <row value expression list> ::= <table row value expression> [ { <comma> <table row value expression> }... ] <contextually typed table value constructor> ::= VALUES <contextually typed row value expression list> <contextually typed row value expression list> ::= <contextually typed row value expression> [ { <comma> <contextually typed row value expression> }... ] ... Conformance Rules Without Feature F641, "Row and table constructors", in conforming SQL language, the <contextually typed row value expression list> of a <contextually typed table value constructor> shall contain exactly one <contextually typed row value constructor> RVE. RVE shall be of the form "(<contextually typed row value constructor element list>)". Without Feature F641, "Row and table constructors", conforming SQL language shall not contain a <table value constructor>.
Microsoft SQL Server 2008 R2 and Microsoft SQL Server 2012 vary as follows:
Transact-SQL partially supports this feature. Transact-SQL does not support simple tables and has limited support for table constructors in general.
See [ISO/IEC9075-1:2011] for the definition of "table".