微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLSERVER2005 EXPRESS部分特性小结

    最近研究了一下sqlSERVER数据库技术,现拿出来跟大伙分享,首先给出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 ( ' 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
RTM 2005.90.1399
sql Server 2005 Service Pack 1 2005.90.2047
sql Server 2005 Service Pack 2 2005.90.3042
sql Server 2005 Service Pack 3 2005.90.4035

最后,希望本文可以给您带来帮助。


原文链接http://www.cnblogs.com/ryanding/archive/2011/02/22/1961278.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐