SQL Server 2008对T-SQL语言的增强
Microsoft SQL Server 2008 对 T-SQL 语言进行了进一步增强。为了让开发人员尽快了解这些变化,我们针对 2007 年 6 月 CTP 版本的 SQL Server 2008 中的 T-SQL 语言的新增功能进行了分析和尝试。本文描述自 SQL Server 2008 CTP1 以来这些语言增强和变化。
本文包含如下内容:
· T-SQL 行构造器
· FORCESEEK 表提示
· GROUPING SETS
· 兼容性级别
· 用户自定义表数据类型
· 表值参数
· MERGE 语句
本文适用于:Microsoft)R) SQL Server(TM) 2008 Developer Edition June 2007 CTP
1、T-SQL 行构造器
T-SQL 行构造器(Row Constructors)用来在 INSERT 语句中一次性插入多行数据。例如:
以下为引用的内容:
CREATETABLE#a
(
Column1nvarchar(max),
Column2nvarchar(max)
);
GO
INSERTINTO#a
VALUES(
('1','1'),
('2','2')
);
SELECT*FROM#a;
GO
DROPTABLE#a;
GO
经过增强后的 INSERT 语句的语法结构如下。
以下为引用的内容:
[WITH<common_table_expression>[,...n]]
INSERT
[TOP(expression)[PERCENT]]
[INTO]
{<object>|rowset_function_limited
[WITH(<Table_Hint_Limited>[...n])]
}
{
[(column_list)]
[<OUTPUTClause>]
{VALUES(({DEFAULT|NULL|expression}[,...n])[,...n])
|derived_table
|execute_statement
|<dml_table_source>
|DEFAULTVALUES
}
}
[;]
<object>::=
{
[server_name.database_name.schema_name.
|database_name.[schema_name].
|schema_name.
]
table_or_view_name
}
<dml_table_source>::=
SELECT<select_list>
FROM(<dml_statement_with_output_clause>)
[AS]table_alias[(column_alias[,...n])]
[WHERE<search_condition>]
[OPTION(<query_hint>[,...n])]