分頁(效果)儲存過程,游標的應用

2021-08-26 12:58:36 字數 2039 閱讀 2726

--分頁(效果)儲存過程,游標的應用,表變數的使用;學習之用

--建表

create table student

( sno varchar(10) primary key,

sname nvarchar(10),

*** char(2),

age int,

dept nvarchar(10)

)--插入資料

insert into student values('1001','張三','男',20,'計算機')

insert into student values('1002','李四','男',18,'數學')

insert into student values('1003','趙六','女',19,'計算機')

insert into student values('1004','里斯','男',20, '數學')

insert into student values('1005','張三三','男',20,'計算機')

insert into student values('1006','李四四','男',18,'數學')

insert into student values('1007','趙六六','女',19,'計算機')

insert into student values('1008','里斯四','男',20, '數學')

insert into student values('1009','里斯五','男',20, '數學')

go--建立分頁(效果)的儲存過程第二版,@tn表名,@cnt每次顯示的記錄數

create proc splitpages;2(@tn nvarchar(30)='student', @cnt int=3) as

begin

--宣告游標

declare curselect cursor for

select sno, sname, ***, age, dept from student

--宣告變數

declare @i int, @sno varchar(10), @sname nvarchar(10)

declare @*** char(2),@age int, @dept nvarchar(10)

declare @t table(--宣告表變數

sno varchar(10),

sname nvarchar(10),

*** char(2),

age int,

dept nvarchar(10))

open curselect --開啟游標

--從游標提取到變數中

fetch next from curselect into @sno, @sname, @***, @age, @dept

set @i=0

while @@fetch_status=0--能提取到資料

begin

set nocount on

insert into @t values(@sno, @sname, @***, @age, @dept)--插入結果到表變數

set @i=@i+1

if @i % @cnt = 0 --夠@cnt個後輸出

begin

select * from @t

delete from @t --清空表變數,為下次存放結果作準備

endfetch next from curselect into @sno, @sname, @***, @age, @dept

endif exists(select * from @t) select * from @t --不夠@cnt的剩餘記錄輸出

close curselect --關閉游標

deallocate curselect --釋放游標

endgo

exec splitpages;2 --以每次預設3條記錄的形式呼叫

exec splitpages;2 'student', 4 --以每次4條記錄的形式呼叫

oracle帶游標的儲存過程

create or replace procedure xs test add19 is bachelor edu varchar2 2000 new bachelor edu varchar2 2000 aa varchar2 2000 bb varchar2 2000 edu length in...

sql service 儲存過程,游標的使用

1 建表 drop table dbo.users gocreate table dbo.users id int not null name varchar 32 null go alter table dbo.users add primary key id go2 新增資料 刪除儲存過程 if...

mysql 儲存過程 游標的使用

儲存過程 create procedure changefrozen begin 定義變數 declare i int default 0 declare d int default 0 declare y id int declare y uid int declare y task id int...