print '================================================================================
初始化数据库:
================================================================================'
USE master
GO
IF EXISTS(SELECT * FROM sysdatabases WHERE name='aDB')
DROP DATABASE aDB
GO
EXEC XP_cmdshell 'mkdir D:\project',no_output
CREATE DATABASE aDB
ON
(
)
LOG ON
(
)
GO
print ‘============================================================================================
自己摸索的分页方法
============================================================================================’
USE aDB
GO
SET NOCOUNT ON
IF EXISTS(SELECT * FROM sysobjects WHERE name='A')
DROP table A
GO
create table A
(
ID int identity(1,1) not null,
LastUpdateDate datetime not null
)
declare @n int
set @n=1
while (@n<=50)
begin
insert into A values(dateadd(dd,datediff(dd,'2000-01-01','2009-08-3')*RAND(),'2000-01-01'))
set @n=@n+1
end
print '================================================================================================='
GO
declare @id int,@date datetime
select TOP 1 @id=ID,@date=LastUpdateDate from A order by LastUpdateDate desc
print '最近的交易号:'+convert(varchar(5),@id)+'
GO
print '================================================================================================='
print '取出表A中第31—40记录:'
print '================================================================================================='
select top 10 * from (select top 40 * from A order by ID ) as a order by ID desc
print '================================================================================================='
print '表A的数据如下:'
print '================================================================================================='
select * from A
print '================================================================================================='
print '下面是分页的实现:'
print '================================================================================================='
USE aDB
GO
SET NOCOUNT ON
if exists (select * from sysobjects where name = 'proc_page')
drop procedure proc_page
GO
create procedure proc_page
@maxPage int=5,
@rowsNum int=10,
@rowsSum int=50
as
if (not @rowsNum between 1 and @rowsSum) or (@maxPage<= 0 ) or(@rowsSum<= 0 )
begin
raiserror ('错误!请正确指定各项参数!',16,1)
return
end
IF EXISTS(SELECT * FROM sysobjects WHERE name='A')
DROP table A
create table A
(
ID int identity(1,1) not null,
Name varchar(10) not null
)
declare @n int
set @n=1
while (@n<=@rowsSum)
begin
insert into A values(substring(replace(newid(),'-',''),1,5))
set @n=@n+1
end
declare @pages int,@pageNo int,@lastRows int
--select @rowsSum=count(*) from A
select @pages=ceiling(@rowsSum*1.0/@rowsNum)
select @lastRows=@rowsSum%@rowsNum
--select pages=30%4
if (@maxPage<@pages)
begin
end
else
begin
end
GO
EXEC proc_page
EXEC proc_page 20,4
EXEC proc_page 3,5
EXEC proc_page @rowsNum=3
EXEC proc_page 10,4,30
EXEC proc_page 50
EXEC proc_page @rowsNum=100
浙公网安备 33010602011771号