最近研究了一下SQLSERVER数据库技术,现拿出来跟大伙分享,首先给出T-SQL脚本。html
创建一张测试表: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新特性删除重复记录:ide
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随机取数据:sqlserver
select
top
3
*
from
TestTable
order
by
newid
()
上述语句每次从TestTable内取出的3条随机记录。测试
SQLSERVER2005 row_number 函数:spa
该函数主要用于sql分页方面,给出简单范例代码:code
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降序后取前三条数据行。server
查看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