时间:2021-07-01 10:21:17 帮助过:168人阅读
create procedure PRO_With_No_Param
as
Begin --begin可省略
select * from sc
end --end可省略
--调用
exec PRO_With_No_Param
--2.带参数的存储过程的创建
create procedure PRO_With_Param
(
@Sno char(5),
@Cno char(1)
)
as
Begin
select * from SC where Sno=@Sno and Cno=@Cno
end
--调用
exec PRO_With_Param ]09002‘,‘2‘
--3.带一个参数的多表联合查询
create procedure PRO_Query_Double_Table
(
@Sname_IN char(6)
)
as
begin
select Sname,Ssex,Sage,Cno,Grade from STU,SCTU where STU.Sno=SCTU.sno and Sname=@Sname_IN
--调用
exec PRO_Query_Double_Table ‘222‘
--4.创建一个插入表的存储过程
create procedure PRO_Insert
(
@Sno_IN char(5),
@Cno_IN char(5),
@Grade_IN int
)
as
begin
insert into SC (Sno,Cno,Grage) values (@Sno_IN,@Cno_IN,@Grade_IN)
end
--调用
exec PRO_Insert ‘0900‘,‘2‘,2
--5.默认参数的存储过程
create procedure PROC_With_Default_Param
(
@Sno_IN char(5)=‘0900‘,
@Cno_IN char(1)=‘2‘
)
as
begin
select * from SC where SC where Sno=@Sno_IN and Cno=@Cno_IN
end
--调用:这种存储过程有三种方式进行调用1.全部使用默认值,2.部分使用默认值。3.全部使用输入值
exec PROC_With_Default_Param
exec PROC_With_Default_Param ‘09‘
exec PROC_With_Default_Param ‘09‘,‘1‘
--6.使用带输出参数的存储过程
create procedure PROC_With_Out_Param
(
@Grade_OUT intoutput
)
as
begin
select @Grade_OUT=Grade from SC where Sno=‘0900‘ and Cno=‘2‘
end
Declare @Grade_Result int --声明一个变量来存储输出参数输出的值
exec PROC_With_Out_Param @Grade_OUT=@Grade_Result output
print @Grade_Result
--写控制逻辑
if @Grade_Result>=90
print ‘a‘
elseif (@Grade_Result<90 and @Grade_Result>85)
print ‘2‘
else
print ‘22‘
select * from SC
--7.使用一个值来保存执行后的状态
create procedure PROC_With_Status_Value
(
@Sno_IN char(5)
)
as
begin
select * from SC where Sno=@Sno_IN
end
--使用记录状态的执行
declare @status int
exec @status=PROC_With_Status_Value @Sno_IN=‘00‘
print @status
if(@status=0)
print ‘1‘
else
print ‘0‘
SQL存储过程编写案例
标签:stat 使用 value sql default 调用 creat logs output