22,294
社区成员
发帖
与我相关
我的任务
分享
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
*/
[Quote=引用 5 楼 guguda2008 的回复:]
一激动写错了,不好意思
SQL codeCREATEPROCEDURE up_getStudent(@NUMVARCHAR(50))ASBEGINIFNOTEXISTS(SELECT1FROM STUDENTSWHERE STUNUM=@NUM)BEGINSELECT'查无此人',-1ENDELSEBEGINSELECT STUNAME,AGEFROM STUDENTSWHERE STUNU=@NUMENDEND
[/Quote]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_proccreate 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
gocreate 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
写错了,别UP
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
ENDCREATE 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