• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >MsSql > SQLServer 2008中SQL增强之二 Top新用途

SQLServer 2008中SQL增强之二 Top新用途

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了sql server 2008,sql server 2008 r2,sql server 2008下载,sql server 2008 密钥,sql server 2008教程等相关知识,希望本文的分享对您有所帮助

一、TOP替代Set RowCount
在SQL Server 2005之前的传统SQL语句中,top语句是不支持局部变量的。
此时可以使用Set RowCount,但是在SQL Server 2005/2008中,TOP通常执行得更快,所以应该用TOP关键字来取代Set RowCount。

代码如下:</div> /***************创建测试表*********************
****************downmoo 3w@live.cn ***************/
IF NOT OBJECT_ID('[Demo_Top]') IS NULL
DROP TABLE [Demo_Top]
GO
Create table [Demo_Top]
(PID int identity(1,1) primary key not null
,PName nvarchar(100) null
,AddTime dateTime null
,PGuid Nvarchar(40)
)
go
truncate table [Demo_Top]
/***************创建1002条测试数据*********************
****************downmoo 3w@live.cn ***************/
declare @d datetime
set @d=getdate()
declare @i int
set @i=1
while @i<=1002
begin
insert into [Demo_Top]
select cast(datepart(ms,getdate()) as nvarchar(3))+Replicate('A',datepart(ss,getdate()))
,getdate()
,NewID()
set @i=@i+1
end
</div>
--注意TOP关键字可以用于Select,Update和Delete语句中 代码如下:</div> Declare @percentage float
set @percentage=1
select Top (@percentage) percent PName from [Demo_Top] order by PName
--注意是11行。(11 row(s) affected)
</div>
邀月注:如果只是需要一些样本,也可以使用TableSample,以下语句返回表Demo_Top的一定百分比的随机行 代码如下:</div> select PName,AddTime, PGuid from [Demo_Top]
TableSample System(10 percent)
--(77 row(s) affected)
</div>
注意这个百分比是表数据页的百分比,而不是记录数的百分比,因此记录数目是不确定的。
二、TOP分块修改数据
TOP的第二个关键改进是支持数据的分块操作。换句话说,避免在一个语句中执行非常大的操作,而把修改分成多个小块,这大大改善了大数据量、大访问量的表的并发性,可以用于大的报表或数据仓库应用程序。此外,分块操作可以避免日志的快速增长,因为前一操作完成后,可能会重用日志空间。如果操作中有事务,已经完成的修改数据已经可以用于查询,而不必等待所有的修改完成。
仍以上表为例: 代码如下:</div> while (select count(1) from [Demo_Top])>0
begin
delete top (202) from [Demo_Top]
end
/*
(202 row(s) affected)
(202 row(s) affected)
(202 row(s) affected)
(202 row(s) affected)
(194 row(s) affected)
*/
</div>
注意是每批删除202条数据,TOP也可以用于Select和Update语句,其中后者更为实用。
--Select TOP(100)
--Update TOP(100)
邀月注:本文版权由邀月和博客园共同所有,转载请注明出处。

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • SQL Server 移动系统数据库
  • SQL Server 使用 SET FMTONLY ON 获得表的元数据
  • 简述SQL Server 2005数据库镜像相关知识
  • 利用SQL SERVER 2005数据库镜像实现可用性分析
  • SQL server 视图(view)介绍
  • SQL Server 索引介绍
  • shp2sqlserver 用法简析
  • SQL Server CROSS APPLY和OUTER APPLY的应用详解
  • SQLServer分布式事务问题
  • sqlserver 2008手工修改表结构,表不能保存的问题与解决方法

相关文章

  • 2017-05-11SqlServer2008误操作数据(delete或者update)后恢复数据的方法
  • 2017-05-11如何在SQL Server 2005数据库中导入SQL Server 2008的数据
  • 2017-05-11如何在SQL Server 2008下轻松调试T-SQL语句和存储过程
  • 2017-05-11Sql Server安装出错,安装程序配置服务器失败的解决方法小结
  • 2017-08-28Sql Server 2005 32位+64位、企业版+标准版、CD+DVD 下载地址大全
  • 2017-05-11SQLServer2005 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复数据库的方法
  • 2017-05-11SQLSERVER 2005中使用sql语句对xml文件和其数据的进行操作(很全面)
  • 2017-05-11mssql 监控磁盘空间告警实现方法
  • 2017-05-11sql2005 数据同步方法
  • 2017-05-11MSSQL2005 INSERT,UPDATE,DELETE 之OUTPUT子句使用实例

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 用jdom创建中文的xml文件的方法
    • SQLServer 设置单词首字母大写
    • 分页存储过程(一)使用sql2005的新函数构造分页存储过程
    • SQL2005 性能监视器计数器错误解决方法
    • SQL Server 2008 安装SQLDMO.dll的方法
    • SqlServer 2005 中字符函数的应用
    • MSSQL 2005 LOG备份webshell的方法
    • SQL Server 2005/2008 导入导出数据常见报错解决方法
    • win2008 r2安装SQL SERVER 2008 R2 不能打开1433端口设置方法
    • SQLServer 2008中SQL增强之三 Merge(在一条语句中使用Insert,Update,Delete)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有