拼吾爱程序人生

首页 » 数据库编程 » SQL Server » SQL Server 2008 的部分新语法
cobra - 2008-8-25 23:20:00
一,如何创建排序表

1.T-SQL创建一个排序表。

Code


2.T-SQL插入数据到排序表。

Code


3.查看结果,如果是在MSSQL2005中插入数据,会报 ',' 附近有语法错误。
           

 附件: 您所在的用户组无法下载或查看附件


二,新语句之MERGE,请参考:[url=http://tech.it168.com/db/2007-07-24/200707242111781.shtmlhttp://tech.it168.com/db/2007-07-24/200707242111781.shtml[/b[/url]]

据IT168技术文档上是说当要对2张表进行信息同步时(合并2张表),有三步操作要进行。首先要处理任何需要插入目标数据表的新行。其次是处理需要更新的已存在的行。最后要删除不再使用的旧行。 一个模板如下:

Code


现在我们使用MERGE同步数据:

Code


我也没理解,,还是说说目前对次语句的理解:

目标表(需要作用的表)是CustomerTable,源表(参照表)是OrderTable

1.When Matched Then  表示 当2张表有一些共同点,就是说CustomerTable.CustomerId = OrderTable.CustomerId 的时候,OrderTable。CustomerTotal 中的值是 更新到CustomerTable。CustomerTotal 。 其实IT168 也提过,,MERGE就是针对join的。

2.When Not Matched Then  表示 当 OrderTable 中的记录在 CustomerTable 中没有,,就添加新行。

3.When MATCHED AND OrderSrc.CustId = 0 THEN 其实应该是 When Source Not Matched Then, 我不知道为什么 When Source Not Matched Then 会报错,,因此改成了

When MATCHED AND OrderSrc.CustId = 0 THEN, 这个逻辑其实因该是要表示当源表,,也就是OrderTable中一条数据都没有的话,就DELETE CustomerTable….,我这里没写出来这个逻辑。

MERGE虽然强大,但会在目标表中产生无关的数据…..


三,内置初始化变量

以前的是:

DECLARE @i int
SET @i = 10现在是:DECLARE @i int = 10 

四,C#数学语法
现在是:--DECLARE @i int
--SET @i = 10
SET @i += 10



五,微软新引进的 表值参数 Table-Value-Parameters (TVP)

我看到微软ADO的博客写了一个例子:

Code


但是看得不是很明白,下面是我的简写:

Code


完了,另外,有兴趣的可以看看MSDN的网站http://msdn.microsoft.com/zh-cn/library/ms144275.aspx




(文/jaic-xiao  出处/博客园)

 您可能对 [SQL Server] 的这些文章也感兴趣:

常用的 SQL 日期处理函数集合
Web环境下SQL Server中数据的磁带备份与恢复
《百鬼夜行抄》真人版…一点点失望
SQL Server 几种锁的区别
使用SQL Server时最容易忽略的21个问题
SQL Server错误18456的解决方法
SQL Server 2005 数据转换服务中的模糊查找和模糊分组(1)
SQL Server实用操作小技巧集合
在SQL Server Agent中应用凭据
SQL Server数据库性能的优化
1
查看完整版本: SQL Server 2008 的部分新语法
Modify by pin5i DZNT_ExpandPackage 2.1.3258 2007-2008 pin5i.com