用sql语句查询从N条到M条的记录
//说明:下面的代码是我转一位高手的,希望对大家能有所收或。。
//再声明一下:如果表名与字段名在整个过程中不再变化,则可以用以下模式:
//=================================
@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