打赏

续存储过程

  接上一篇

参考彭泽江老师视频《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

posted @ 2018-03-31 10:06  每天都要学一点  阅读(162)  评论(0编辑  收藏  举报