考试网 >> IT认证 >> Oracle >> Oracle指导 >> 为数据库的表自动生成行号

为数据库的表自动生成行号

发布时间:2006-06-28 10:23     点击:
分页:[1] 2 3 4  下一页

在以数据库为基础的应用程序开发中,分页是一个比较常用的操作,

可惜的是SQL Server2000中没有Oracle中相应的ROWNUM属性可用,

用”触发器“生成一个ROWNUM列]

勉强可以一用,当然用如下的SQL语句也可以生成第i页,每页n行,tid是主键列,

select top n  * from tab 

 where strWhere  and  tid>(select max(tid)  

               from (select top (i-1)*n  tid from tab  where  strWhere  order by tid ) as T) 

               )

order by tid

也可以,但是我想用另一种方法也未尝不可

因此就有自动生成ROWNUM列的想法

eg:

     建表:

CREATE TABLE [dbo].[orderEmp] (

 [rownum] [int] NOT NULL ,---同时该列要求有唯一性约束

 [ordID] [int] IDENTITY (1, 1) NOT NULL ,---主键列

 [empID] [int] NOT NULL ,

 [empTxt] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,

 [empDate] [datetime] NOT NULL ---此列上建“聚集索引“

) ON [PRIMARY]

----------对插入语句处理的触发器

CREATE  TRIGGER orderEmpAddTrg

ON  orderEmp

instead of   INSERT

AS

begin

    declare  @rw int

    select  @rw=0

    select @rw=max(rownum) from orderEmp
分页:[1] 2 3 4  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有