续存储过程
接上一篇
参考彭泽江老师视频《sqlserver数据库学习》
本人纯手敲并全部执行成功,喜欢请好评~~
注意以下的每个go都要换行
use zhangyanandb
GO
--打印10 次I love U
DECLARE @i INT
set @i=1
while (@i<=10) BEGIN
print 'I love U'+CONVERT(varchar,@i);
set @i=@i+1;
END
--此处可以有GO
--封装到存储过程里
create proc p_love as
DECLARE @i INT
set @i=1
while (@i<=10) BEGIN
print 'I love U'+CONVERT(varchar,@i);
set @i=@i+1;
END
--此处可以有GO
--调用存储过程
exec p_love
--删除存储过程
drop proc p_love
--如果存在就删除并重新创建
if EXISTS (select * from sysobjects where name='p_love')
drop proc p_love
GO
create proc p_love as
DECLARE @i INT
set @i=1
while (@i<=10) BEGIN
print 'I love U'+CONVERT(varchar,@i);
set @i=@i+1;
END
GO
--带参存储过程--修改存储过程
alter proc p_love
@count INT
as
DECLARE @i INT
set @i=1
while (@i<=@count) BEGIN
print 'I love U'+CONVERT(varchar,@i);
set @i=@i+1;
END
GO
exec p_love 5
--带参存储过程调用方式二
declare @i INT
set @i=3
exec p_love @i
--带参存储过程调用方式三
exec p_love @count=2--此处变量名字必须与创建时一致
--带默认值存储过程
--修改存储过程
alter proc p_love
@count INT=10--默认10次
as
DECLARE @i INT
set @i=1
while (@i<=@count) BEGIN
print 'I love U'+CONVERT(varchar,@i);
set @i=@i+1;
END
GO
exec p_love
--带输出参数存储过程
--修改存储过程
alter proc p_love
@count INT=10,@str varchar(4) OUTPUT
as
DECLARE @i INT
set @i=1
while (@i<=@count) BEGIN
print 'I love U'+CONVERT(varchar,@i);
set @i=@i+1;
END
if(@count<10) begin--begin可以省略
set @str='同意' end
begin--ELSE--begin可以省略,省略时else解注释
set @str='拒绝' end
GO
--输出参数需定义变量接收
declare @strr VARCHAR(4)
exec p_love DEFAULT,@strr OUTPUT--有默认值的情况可以用default代替输入参数默认值。@strr要指定output
print @strr
本文来自博客园,作者:每天都要学一点,欢迎讨论和转载,转载请注明原文链接:https://www.cnblogs.com/yanan7890/p/8681120.html