使用T-SQL语句创建存储过程

ujfflovetong 2009-12-11 11:16:08
使用T-SQL语句创建存储过程up_getStudent,要求:输入学号,如果有这个学生,就返回该学生的姓名、年龄;如果没有这个学生,姓名返回“查无此人”,年龄返回-1。


急,谢谢各位大虾!!

...全文
343 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
長胸為富 2009-12-11
  • 打赏
  • 举报
回复

create table tb(sNo varchar(10) , Sname varchar(20) , tAge int)
insert into tb values('01' , '张三' , 20)
insert into tb values('02' , '李四' , 18)
go


CREATE PROCEDURE up_getStudent(@sNo VARCHAR(15),@sName VARCHAR(10) OUTPUT,@tAge INT OUTPUT)
AS
BEGIN
SELECT @sName = '查无此人',@tAge = -1
SELECT @sName = Sname,@tAge = tAge from tb where sNo = @sNo
END



DECLARE @sName VARCHAR(10) ,@tAge INT
EXEC up_getStudent '01',@sName OUTPUT,@tAge OUTPUT
SELECT @sName ,@tAge

/*
张三 20
*/


DECLARE @sName VARCHAR(10) ,@tAge INT
EXEC up_getStudent '03',@sName OUTPUT,@tAge OUTPUT
SELECT @sName ,@tAge

/*
查无此人 -1
*/
Mr_Nice 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 guguda2008 的回复:]
一激动写错了,不好意思
SQL codeCREATEPROCEDURE up_getStudent(@NUMVARCHAR(50))ASBEGINIFNOTEXISTS(SELECT1FROM STUDENTSWHERE STUNUM=@NUM)BEGINSELECT'查无此人',-1ENDELSEBEGINSELECT STUNAME,AGEFROM STUDENTSWHERE STUNU=@NUMENDEND
[/Quote]


有点儿意思! hahaha !
dawugui 2009-12-11
  • 打赏
  • 举报
回复
create table tb(学号字段 varchar(10) , 姓名字段 varchar(20) , 年龄字段 int)
insert into tb values('01' , '张三' , 20)
insert into tb values('02' , '李四' , 18)
go

create proc my_proc @学号 varchar(10) , @name varchar(20) OUTPUT , @age int output
as
begin
if exists(select 1 from tb where 学号字段 = @学号)
select @name = 姓名字段 , @age = 年龄字段 from tb where 学号字段 = @学号
else
begin
set @name = '查无此人'
set @age = -1
end
end
go

declare @name varchar(20)
declare @age int

EXECUTE my_proc '01', @name OUTPUT , @age output
select @name
select @age
/*

--------------------
张三

(所影响的行数为 1 行)


-----------
20

(所影响的行数为 1 行)
*/

EXECUTE my_proc '04', @name OUTPUT , @age output
select @name
select @age
/*

--------------------
查无此人

(所影响的行数为 1 行)


-----------
-1

(所影响的行数为 1 行)
*/

drop table tb
drop proc my_proc
百年树人 2009-12-11
  • 打赏
  • 举报
回复
try
create proc up_getStudent @sno varchar(20),@sname varchar(100) output,@age int output
as
if exists(select 1 from student where sno=@sno)
begin
select
@sname=name,
@age=age
from student
where sno=@sno
end
else
select @sname='查无此人',@age=-1

go
--小F-- 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 guguda2008 的回复:]
一激动写错了,不好意思
SQL codeCREATEPROCEDURE up_getStudent(@NUMVARCHAR(50))ASBEGINIFNOTEXISTS(SELECT1FROM STUDENTSWHERE STUNUM=@NUM)BEGINSELECT'查无此人',-1ENDELSEBEGINSELECT STUNAME,AGEFROM STUDENTSWHERE STUNU=@NUMENDEND
[/Quote]

UP这个
dawugui 2009-12-11
  • 打赏
  • 举报
回复
create procdure my_proc @学号 as varchar(10) , @name varchar(20) OUTPUT , @age int output
as
begin
if exists(select 1 from tb where 学号字段 = @学号)
select @name = 姓名字段 , @age = 年龄字段 from tb where 学号字段 = @学号
else
begin
set @name = '查无此人'
set @age = -1
end
end
go

declare @name varchar(20)
declare @age int

EXECUTE my_proc '某学号', @name OUTPUT , @age output

select @name
select @age
guguda2008 2009-12-11
  • 打赏
  • 举报
回复
写错了,别UP
nianran520 2009-12-11
  • 打赏
  • 举报
回复
鸭子写反了
guguda2008 2009-12-11
  • 打赏
  • 举报
回复
一激动写错了,不好意思
CREATE PROCEDURE up_getStudent(@NUM VARCHAR(50))
AS
BEGIN
IF NOT EXISTS(SELECT 1 FROM STUDENTS WHERE STUNUM=@NUM)
BEGIN
SELECT '查无此人',-1
END
ELSE
BEGIN
SELECT STUNAME,AGE FROM STUDENTS WHERE STUNU=@NUM
END
END
jinjazzli 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 guguda2008 的回复:]
SQL codeCREATEPROCEDURE up_getStudent(@NUMVARCHAR(50))ASBEGINIFEXISTS(SELECT1FROM STUDENTSWHERE STUNUM=@NUM)BEGINSELECT'查无此人',-1ENDELSEBEGINSELECT STUNAME,AGEFROM STUDENTSWHERE STUNU=@NUMENDEND
[/Quote]up
sytdeedee 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 guguda2008 的回复:]
SQL codeCREATEPROCEDURE up_getStudent(@NUMVARCHAR(50))ASBEGINIFEXISTS(SELECT1FROM STUDENTSWHERE STUNUM=@NUM)BEGINSELECT'查无此人',-1ENDELSEBEGINSELECT STUNAME,AGEFROM STUDENTSWHERE STUNU=@NUMENDEND
[/Quote]
UP
長胸為富 2009-12-11
  • 打赏
  • 举报
回复
sf
guguda2008 2009-12-11
  • 打赏
  • 举报
回复
CREATE PROCEDURE up_getStudent(@NUM VARCHAR(50))
AS
BEGIN
IF EXISTS(SELECT 1 FROM STUDENTS WHERE STUNUM=@NUM)
BEGIN
SELECT '查无此人',-1
END
ELSE
BEGIN
SELECT STUNAME,AGE FROM STUDENTS WHERE STUNU=@NUM
END
END

22,294

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧