Home > Database > Mysql Tutorial > body text

SQLSERVER2005 EXPRESS部分特性小结

WBOY
Release: 2016-06-07 15:27:39
Original
1124 people have browsed it

最近研究了一下SQLSERVER数据库技术,现拿出来跟大伙分享,首先给出T-SQL脚本。 建立一张测试表: CREATE TABLE TestTable ( Column1 varchar ( 1 ), Column2 int ) 加入一些测试数据: INSERT INTO TestTable VALUES ( ' A ' , 1 ); INSERT INTO TestTable

    最近研究了一下SQLSERVER数据库技术,现拿出来跟大伙分享,首先给出T-SQL脚本。

建立一张测试表:

<p><span>CREATE</span><span>TABLE</span><span> TestTable (<br>   Column1 </span><span>varchar</span><span>(</span><span>1</span><span>),<br>   Column2 </span><span>int</span><span><br>)</span></p>
Copy after login

加入一些测试数据:

<p><span>INSERT</span><span>INTO</span><span> TestTable </span><span>VALUES</span><span> (</span><span>'</span><span>A</span><span>'</span><span>, </span><span>1</span><span>);<br></span><span>INSERT</span><span>INTO</span><span> TestTable </span><span>VALUES</span><span> (</span><span>'</span><span>A</span><span>'</span><span>, </span><span>1</span><span>); </span><span>--</span><span> 重复</span><span><br></span><span>INSERT</span><span>INTO</span><span> TestTable </span><span>VALUES</span><span> (</span><span>'</span><span>A</span><span>'</span><span>, </span><span>2</span><span>);<br></span><span>INSERT</span><span>INTO</span><span> TestTable </span><span>VALUES</span><span> (</span><span>'</span><span>B</span><span>'</span><span>, </span><span>1</span><span>);<br></span><span>INSERT</span><span>INTO</span><span> TestTable </span><span>VALUES</span><span> (</span><span>'</span><span>B</span><span>'</span><span>, </span><span>2</span><span>);<br></span><span>INSERT</span><span>INTO</span><span> TestTable </span><span>VALUES</span><span> (</span><span>'</span><span>B</span><span>'</span><span>, </span><span>2</span><span>); </span><span>--</span><span>重复</span><span><br></span><span>INSERT</span><span>INTO</span><span> TestTable </span><span>VALUES</span><span> (</span><span>'</span><span>C</span><span>'</span><span>, </span><span>2</span><span>)</span></p>
Copy after login
使用sqlserver2005新特性删除重复记录:

<p><span>DELETE</span><span><br></span><span>FROM</span><span>  TestTable<br></span><span>WHERE</span><span> TestTable.</span><span>%%</span><span>lockres</span><span>%%</span><span><br>      </span><span>NOT</span><span>IN</span><span> (</span><span>SELECT</span><span>MIN</span><span>(b.</span><span>%%</span><span>lockres</span><span>%%</span><span>)<br>              </span><span>FROM</span><span>   TestTable b<br>              </span><span>GROUP</span><span>BY</span><span> b.column1, b.Column2)</span></p>
Copy after login

sqlserver2008新特性删除重复记录:

<p><span>DELETE</span><span><br></span><span>FROM</span><span>  TestTable<br></span><span>WHERE</span><span> TestTable.</span><span>%%</span><span>physloc</span><span>%%</span><span><br>      </span><span>NOT</span><span>IN</span><span> (</span><span>SELECT</span><span>MIN</span><span>(b.</span><span>%%</span><span>physloc</span><span>%%</span><span>)<br>              </span><span>FROM</span><span>   TestTable b<br>              </span><span>GROUP</span><span>BY</span><span> b.column1, b.Column2);</span></p>
Copy after login

当然了如果TestTable 具备主键(假设主键为ID且identity(1,1)),我们可以通过传统的T-SQL语句获取不重复的记录:

<p><span>--</span><span>建立主键</span><span><br></span><span>alter</span><span>table</span><span> TestTable </span><span>with</span><span>nocheck</span><span>add</span><span> <br>id </span><span>int</span><span>identity</span><span>(</span><span>1</span><span>,</span><span>1</span><span>) </span><span>primary</span><span>key</span><span><br></span><span>go</span><span><br><br></span><span>--</span><span>取唯一记录</span><span><br></span><span>select</span><span>min</span><span>(ID)</span><span>from</span><span> TestTable<br></span><span>group</span><span>by</span><span> column1, column2<br></span><span>go</span></p>
Copy after login

SQLSERVER2005随机取数据:

<p><span>select</span><span>top</span><span>3</span><span>*</span><span>from</span><span> TestTable </span><span>order</span><span>by</span><span>newid</span><span>() </span></p>
Copy after login

上述语句每次从TestTable内取出的3条随机记录。

SQLSERVER2005 row_number 函数:

该函数主要用于sql分页方面,给出简单范例代码:

<p><span>select</span><span>*</span><span>from</span><span>(    <br>   </span><span>select</span><span> id,   column1, column2,   row_number() </span><span>OVER</span><span>(</span><span>order</span><span>by</span><span> id </span><span>desc</span><span> ) </span><span>as</span><span> row </span><span>from</span><span> TestTable<br>) a    <br></span><span>where</span><span>   row   </span><span>between</span><span>1</span><span>and</span><span>3</span></p>
Copy after login

这里id为 TestTable 的自增主键,每次按主键id降序后取前三条数据行。

查看SQLSERVER2005版本:

<p><span>SELECT</span><span>  SERVERPROPERTY(</span><span>'</span><span>productversion</span><span>'</span><span>), SERVERPROPERTY (</span><span>'</span><span>productlevel</span><span>'</span><span>), SERVERPROPERTY (</span><span>'</span><span>edition</span><span>'</span><span>)</span></p>
Copy after login

这里给出不同版本的SQLSERVER2005版本:

RTM版:

SQLSERVER2005 EXPRESS部分特性小结

sp3版:

SQLSERVER2005 EXPRESS部分特性小结

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

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

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template