您所在的位置:数据库 > 数据库开发 > SQL Server 2008对T-SQL语言的增强(1)

SQL Server 2008对T-SQL语言的增强(1)

2007-07-06 09:06 周融 Csdn博客 字号:T | T
一键收藏,随时查看,分享好友!

Microsoft SQL Server 2008对T-SQL语言进行了进一步增强。为了让开发人员尽快了解这些变化,我们针对2007年6月CTP版本的SQL Server 2008中的T-SQL语言的新增功能进行了分析和尝试。本文描述自SQL Server 2008 CTP1以来这些语言增强和变化。

AD:

【引自lee576的博客】本文包含如下内容:

◆T-SQL行构造器
◆FORCESEEK表提示
◆GROUPING SETS
◆兼容性级别
◆用户自定义表数据类型
◆表值参数
◆MERGE语句

本文适用于:Microsoft SQL Server(TM) 2008 Developer Edition June 2007 CTP

1、T-SQL行构造器

T-SQL行构造器(Row Constructors)用来在INSERT语句中一次性插入多行数据。例如:

CREATE TABLE #a
(
    Column1 nvarchar(max),
    Column2 nvarchar(max)
);
GO

INSERT INTO #a
VALUES (
('1', '1'),
('2', '2')
);

SELECT * FROM #a;
GO

DROP TABLE #a;
GO

经过增强后的INSERT语句的语法结构如下。

[ WITH [ ,...n ] ]
INSERT
    [ TOP ( expression ) [ PERCENT ] ]
    [ INTO ]
    { | rowset_function_limited
      [ WITH ( [ ...n ] ) ]
    }
{
    [ ( column_list ) ]
    [ ]
    { VALUES ( ( { DEFAULT | NULL | expression } [ ,...n ] ) [ ,...n ] )
    | derived_table
    | execute_statement
    |
    | DEFAULT VALUES
    }
}
[; ]

::=
{
    [ server_name . database_name . schema_name .
      | database_name .[ schema_name ] .
      | schema_name .
    ]
        table_or_view_name
}

::=
    SELECT
    FROM ( )
                      [AS] table_alias [ ( column_alias [ ,...n ] ) ]
        [ WHERE ]
    [ OPTION ( [ ,...n ] ) ]

2. FORCESEEK提示

FORCESEEK 是一个新的表提示(Table Hints),它用来指定SQL Server查询优化程序如何更高效的执行查询。该提示指示优化程序对查询引用的表和视图通过索引检索来作为唯一的查询执行访问路径。也就是强制通过索引检索数据。例如:

USE tempdb;
GO
DROP TABLE t;
GO
CREATE TABLE t(i int UNIQUE, j int, vc varchar(100));
CREATE INDEX t_vc ON t(vc);
GO
DECLARE @p1 int, @p2 int, @p3 int, @p4 int, @p5 int;
SELECT * FROM t WHERE i IN (@p1, @p2, @p3, @p4, @p5);
GO
DECLARE @p1 int, @p2 int, @p3 int, @p4 int, @p5 int;
SELECT * FROM t WITH (FORCESEEK) WHERE i IN (@p1, @p2, @p3, @p4, @p5);
GO
SELECT * FROM t WHERE vc LIKE 'Test%';
GO
SELECT * FROM t WITH (FORCESEEK) WHERE vc LIKE 'Test%';
GO
DECLARE @vc varchar(100);
SELECT * FROM t WHERE vc LIKE @vc;
GO
DECLARE @vc varchar(100);
SELECT * FROM t WITH (FORCESEEK) where vc like @vc;
GO

内容导航



分享到:

热点职位

更多>>

热点专题

更多>>

读书

程序设计实践双语版
程序设计实践并不只是写代码。程序员必须评论各种折衷方案,在许多可能性之中做出选择、排除错误、做测试和改进程序性能,还要维

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 51CTO学院