您的位置:首页 > 数据库

用sql语句查询从N条到M条的记录

2008-05-24 22:04 239 查看
//说明:下面的代码是我转一位高手的,希望对大家能有所收或。。

//再声明一下:如果表名与字段名在整个过程中不再变化,则可以用以下模式:

//=================================

@tableName as varchar(20)='leaveWord',--表名

@fieldList as varchar(1000)='*',--字段列表

@startIndex as varchar(10),--开始

@endIndex as varchar(10)--结束

==================================//

CREATE PROCEDURE p_GetBetweenData

@tableName as varchar(20),--表名

@fieldList as varchar(1000),--字段列表

@startIndex as varchar(10),--开始

@endIndex as varchar(10)--结束

AS

Declare @strSql as Varchar(4000) --定义sql字符串

--将原表数据复制到临时表

begin

set @strSql='SELECT TOP '+@endIndex+' * INTO tempTB FROM '+@tableName

--print @strSql

exec(@strSql)

end

--修改临时表结构

begin

ALTER TABLE tempTB ADD _ID int IDENTITY

end

--查询出指定的记录,这里要注意一下,如果原表中有_id这个字段(无论大小与)下面的那个_ID字段名都要改一改

begin

set @strSql='SELECT '+ @fieldList + ' FROM tempTB WHERE _ID>='+@startIndex+' and _ID<='+@endIndex

--print @strSql

exec(@strSql )

end

--删除临时表

begin

drop table tempTB

end

GO

//下面这种方法。。也可以。。只是在对临时表进行操作时有点不一样。。

CREATE PROCEDURE p_GetBetweenData

@tableName as varchar(20),--表名

@fieldList as varchar(1000),--字段列表

@startIndex as varchar(10),--开始

@endIndex as varchar(10)--结束

AS

Declare @strSql as Varchar(4000) --定义sql字符串

--将原表数据复制到临时表

begin

set @strSql='SELECT TOP '+@endIndex+' 0 AS _ID,* INTO tempTB FROM '+@tableName

--print @strSql

exec(@strSql)

end

--更新列编号,这里要注意一下,如果原表中有_id这个字段(无论大小与)下面的那个_ID字段名都要改一改

begin

Declare @i int

set @i=0

update tempTB set @i=@i+1,_ID=@i

end

--查询出指定的记录

begin

set @strSql='SELECT '+ @fieldList + ' FROM tempTB WHERE _ID>='+@startIndex+' and _ID<='+@endIndex

--print @strSql

exec(@strSql )

end

--删除临时表

--begin

--drop table tempTB

--end

GO
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: