≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 数据库 > SQL Server

解析SQLServer2005的Top功能

人气:507 时间:2020-03-11

这篇文章主要为大家详细介绍了解析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就可以模拟出来一个相对高效的独占查询的事物。此功能适合用在并行的任务处理或者消费中。

本文来自:http://www.q1010.com/179/8431-0.html

注:关于解析SQLServer2005的Top功能的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:SQL SERVER

您可能感兴趣的文章

  • 浅析SQLServer中的Scanf与Printf
  • 解析SQLServer获取Excel中所有Sheet的方法
  • SQLSERVER数据库备份后无法还原的解决办法
  • 浅析被遗忘的SQLServer比较运算符修饰词
  • sqlserver 存储过程中If Else的用法实例
  • SQL Server 将ACCESS数据库迁移到SQLSERVER数据库两种方法
  • SQL Server 使用mongovue把sqlserver数据导入mongodb的简单示例
  • SQL Server driver配置方法 jdbc连接sqlserver的简单示例
  • SQL Server 查找查询死锁源头的方法 sqlserver死锁监控
  • Linux环境中使用BIEE 连接SQLServer业务数据源的简单示例
上一篇:SQLServer导出数据到MySQL实例介绍
下一篇:sqlServer使用ROW_NUMBER时不排序的解决方法
热门文章
  • SQL Server SQL获取第一条记录的方法
  • SQL Server出现System.OutOfMemoryException异常的解决方法
  • SQL Server的 update from 语句的简单示例
  • SQL Server 数据库备份方法菜鸟教程
  • SQL Server 多表关联时在where语句中慎用trim()方法
  • SQL Server数据类型及长度限制详细说明
  • mybaits非配置原因,导致SqlSession was not registered for synchronization异常解析
  • SQL Server 收缩后对数据库的使用有影响吗?
  • SQL Server 格式导致的Excel导入sql出现异常的解决方法
  • SQL Server 连接服务器出现错误 7391的解决方法
  • 最新文章
    • SQL Server存储过程基本语法的简单示例
    • sql查询时增加自动编号和分页的简单示例
    • sql轻松应付百万数据的高效数据分页存储过程的简单示例
    • sql获取一条数据中所有字段的名称和值的实现方法
    • sql分割函数的简单示例
    • SQL Server异常捕获的简单示例
    • SQL SERVER回滚恢复误操作数据的实现方法
    • SQL Server函数或存储过程中抛出异常的实现方法
    • SQL Server创建数据库的完整代码
    • SQL Server创建数据库的命令用法示例

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。