日期:2014-05-17  浏览次数:20525 次

存储过程加游标应用的语句怎么写?
EX2 编程一个存储过程,名为displayN(@n int),实现获取并显示xsqk表中第n条记录的功能,如果n超出记录总数范围,则显示错误。
EX3 编程一个存储过程,名为displayNM(@n int,@m int),实现获取并显示xsqk表中从第n条记录开始到m条记录中所有记录的功能

表结构如下:
create table xsqk
(学号 int primary key,
 姓名 varchar(20),
 性别 varchar(2),
 年龄 tinyint,
 专业 varchar(20),
 家庭地址 varchar(50)
)

--数据有如图
存储过程 游标应用

------解决方案--------------------
你是用什么数据的,按你的要求不需要加游标的.

create proc displayN(@n int)
as
set nocount on
declare @num int

select @num=count(*) from xsqk

if @n>@num
begin
RAISERROR ('n已经超过总记录数.',1,1)
return
end

select *
from (
select *,rn=row_number() over(partition by getdate() order by getdate() from dept 
)t
where rn =@n 

go


create proc displayNM(@n int,@m int)
as
set nocount on
declare @num int

select *
from (
select *,rn=row_number() over(partition by getdate() order by getdate() from dept 
)t
where rn between @n and @m

go



--测试
exec displayN 1

exec displayNM 1,5