gpt4 book ai didi

解析SQLServer2005的Top功能

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章解析SQLServer2005的Top功能由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

所有人都知道select top 的用法,但很多人还不知道update top 和 delete top 怎么用。以往的做法是set rowcount来指定,其实SQL2005中对于Top语句的增强除了参数化之外还包括对update和delete的支持,但可惜的是还不支持自定义的order by列。如果要自定义派序列可以借助CTE.对于CTE的任何更改都会影响到原始表。 我们看下面的测试代码.

复制代码代码如下

set nocount on  use tempdb  go  if (object_id ('tb' ) is not null )     drop table tb  go  create table tb (id int identity (1 , 1 ), name varchar (10 ), tag int default 0 ) insert into tb (name ) select 'a'  insert into tb (name ) select 'b'  insert into tb (name ) select 'c'  insert into tb (name ) select 'd'  insert into tb (name ) select 'e'  /*--更新前两行  id          name       tag  ----------- ---------- -----------  1           a          1  2           b          1  3           c          0  4           d          0  5           e          0  */  update top (2 )  tb set tag = 1  select * from tb  /*--更新后两行  id          name       tag  ----------- ---------- -----------  1           a          1  2           b          1  3           c          0  4           d          1  5           e          1  */  ;with t as  (     select top (2 ) * from tb order by id desc  ) update   t set tag = 1  select * from tb  /*--删除前两行  id          name       tag  ----------- ---------- -----------  3           c          0  4           d          1  5           e          1  */  delete top (2 ) from tb  select * from tb  /*--删除后两行  id          name       tag  ----------- ---------- -----------  3           c          0  */  ;with t as  (     select top (2 ) * from tb order by id desc  ) delete from   t  select * from tb  set nocount off  。

我会在下一篇文章中介绍一个应用,就是很多人关心的如何独占查询(就是一条数据只被一个终端select到)。 如果你感兴趣的话可以自己先思考一下,我给一个提示:  SQLServer2005有一个关键字Output,它可以将更改和插入的数据输出,我们配合update top就可以模拟出来一个相对高效的独占查询的事物。此功能适合用在并行的任务处理或者消费中。  。

最后此篇关于解析SQLServer2005的Top功能的文章就讲到这里了,如果你想了解更多关于解析SQLServer2005的Top功能的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com