34,873
社区成员
发帖
与我相关
我的任务
分享
--调用存储过程
declare @学号 varchar(12)
DECLARE @CrsrVar CURSOR
EXEC OpenCrsr @姓名='张三',@OutCrsr = @CrsrVar OUTPUT
FETCH NEXT FROM @CrsrVar into @学号
WHILE(@@FETCH_STATUS=0)
BEGIN
select 班主任 from 班主任表 where 学号=@学号
FETCH NEXT FROM @CrsrVar
END
CLOSE @CrsrVar
DEALLOCATE @CrsrVar
GO
---把这个也改成存储过程吧
create table 同学表(
学号 varchar(6) primary key,
姓名 varchar(8) not null,
性别 varchar(2) default '男',
出生日期 datetime,
年龄 int,
身份证号 varchar(18) unique,
宿舍编号 varchar (3) )
go
insert 同学表 values('061201','张三','女','1988-11-23',20,'421022198811233025','001')
insert 同学表 values('061202','李四','男','1987-1-12',21,'421022198701123025','001')
create table 班主任表(
学号 varchar(6) primary key,
班主任 varchar(12)not null)
go
insert 班主任表 values('061201','王五')
insert 班主任表 values('061202','王五')
create PROCEDURE OpenCrsr
@姓名 varchar(50),
@OutCrsr CURSOR VARYING OUTPUT
AS
SET @OutCrsr = CURSOR FOR SELECT 学号 FROM 同学表 WHERE 姓名=@姓名
OPEN @OutCrsr
GO
create proc p_wsp
@姓名 varchar(50)
as
declare @学号 varchar(12)
DECLARE @CrsrVar CURSOR
EXEC OpenCrsr @姓名=@姓名,@OutCrsr = @CrsrVar OUTPUT
FETCH NEXT FROM @CrsrVar into @学号
WHILE(@@FETCH_STATUS=0)
BEGIN
select 班主任 from 班主任表 where 学号=@学号
FETCH NEXT FROM @CrsrVar
END
CLOSE @CrsrVar
DEALLOCATE @CrsrVar
GO
exec p_wsp '张三'
create table 同学表(
学号 varchar(6) primary key,
姓名 varchar(8) not null,
性别 varchar(2) default '男',
出生日期 datetime,
年龄 int,
身份证号 varchar(18) unique,
宿舍编号 varchar (3) )
go
insert 同学表 values('061201','张三','女','1988-11-23',20,'421022198811233025','001')
insert 同学表 values('061202','李四','男','1987-1-12',21,'421022198701123025','001')
create table 班主任表(
学号 varchar(6) primary key,
班主任 varchar(12)not null)
go
insert 班主任表 values('061201','王五')
insert 班主任表 values('061202','王五')
--创建输出游标存储过程
create PROCEDURE OpenCrsr
@姓名 varchar(50),
@OutCrsr CURSOR VARYING OUTPUT
AS
SET @OutCrsr = CURSOR FOR SELECT 学号 FROM 同学表 WHERE 姓名=@姓名
OPEN @OutCrsr
GO
--调用存储过程
declare @学号 varchar(12)
DECLARE @CrsrVar CURSOR
EXEC OpenCrsr @姓名='张三',@OutCrsr = @CrsrVar OUTPUT
FETCH NEXT FROM @CrsrVar into @学号
WHILE(@@FETCH_STATUS=0)
BEGIN
select 班主任 from 班主任表 where 学号=@学号
FETCH NEXT FROM @CrsrVar
END
CLOSE @CrsrVar
DEALLOCATE @CrsrVar
GO
declare @name varchar(100)
set @name='张三'
select b.班主任 from 同学表 a,班主任表 b
where a.学号=b.学号 and a.姓名=@name