关于SQLserver2005的特性,我在下边给大家介绍下。首先给出T-SQL脚本。
建立一张测试表:
- CREATE TABLE TestTable (
- Column1 varchar(1),
- Column2 int
- )
加入一些测试数据:
- INSERT INTO TestTable VALUES ('A', 1);
- INSERT INTO TestTable VALUES ('A', 1); -- 重复
- INSERT INTO TestTable VALUES ('A', 2);
- INSERT INTO TestTable VALUES ('B', 1);
- INSERT INTO TestTable VALUES ('B', 2);
- INSERT INTO TestTable VALUES ('B', 2); --重复
- INSERT INTO TestTable VALUES ('C', 2);
使用sqlserver2005新特性删除重复记录:
- DELETE
- FROM TestTable
- WHERE TestTable.%%lockres%%
- NOT IN (SELECT MIN(b.%%lockres%%)
- FROM TestTable b
- GROUP BY b.column1, b.Column2);
sqlserver2008新特性删除重复记录:
- DELETE
- FROM TestTable
- WHERE TestTable.%%physloc%%
- NOT IN (SELECT MIN(b.%%physloc%%)
- FROM TestTable b
- GROUP BY b.column1, b.Column2);
当然了如果TestTable 具备主键(假设主键为ID且identity(1,1)),我们可以通过传统的T-SQL语句获取不重复的记录:
- --建立主键
- alter table TestTable with nocheck add
- id int identity(1,1) primary key
- go
- --取唯一记录
- select min(ID)from TestTable
- group by column1, column2
- go
SQLSERVER2005随机取数据:
- select top 3 * from TestTable order by newid()
上述语句每次从TestTable内取出的3条随机记录。
SQLSERVER2005 row_number 函数:
该函数主要用于sql分页方面,给出简单范例代码:
- select * from(
- select id, column1, column2, row_number() OVER(order by id desc ) as row from TestTable
- ) a
- where row between 1 and 3
这里id为 TestTable 的自增主键,每次按主键id降序后取前三条数据行。
查看SQLSERVER2005版本:
- SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition'
这里给出不同版本的SQLSERVER2005版本:
RTM版:
sp3版:
SQLSERVER2005所有版本:
发行版Sqlservr.exe
RTM2005.90.1399
SQL Server 2005 Service Pack 12005.90.2047
SQL Server 2005 Service Pack 22005.90.3042
SQL Server 2005 Service Pack 32005.90.4035
***,希望本文可以给您带来帮助。
原文:http://www.cnblogs.com/ryanding/archive/2011/02/22/1961278.html
新闻标题:SQLserver2005部分特性小结
标题网址:http://www.shufengxianlan.com/qtweb/news28/357228.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联