/*
* 少年游 周邦彦
* 并刀如水,吴盐胜雪,纤手破新橙。
* 锦幄初温,兽烟不断,相对坐调笙。
* 低声问:向谁行宿?城上已三更。
* 马滑霜浓,不如休去,直是少人行。
*/
1.首先新建存储过程
CREATE PROCEDURE [dbo].[Test] --存储过程的名字
--传入的参数
@ID varchar(50),
@Number float = null,
@Tes varchar(2000) output,
@Res varchar(2000) output --output 是输出
AS
DECLARE @Run varchar(2000) --存储过程中的内部变量
--begin是存储过程真正开始的地方 以end结束 中间可以嵌套多个begin end
BEGIN
SET NOCOUNT ON; --设置‘n行受影响’ 为关闭
if (@ID = '1')
SELECT @Tes = 'ID是1'
else
SELECT @Tes = 'ID不是1'
begin try
SELECT @Res = 1/@Number
end try
begin catch
SELECT @Res = 'Number为0'
end catch
return
END
GO
2.调用存储过程
declare @m_viewcount varchar(2000),@m_hotcount varchar(2000)
exec dbo.Test '1',0,@m_viewcount output,@m_hotcount output
查看执行结果
select @m_viewcount as a,@m_hotcount as b
3.结果
4.详解创建存储过程
(1)存储过程 和 函数 是有区别的
(2)第一个begin开始代表着存储过程的开始 最后一个end 代表着 整个存储过程的结束
(3)执行到return会直接跳出存储过程 return后面必须是int类型的
(4)SELECT 相当于是一个赋值语句
(5)SQL异常处理:begin try和end try之间的SQL语句出错,会执行begin catch和end catch之间的语句
(6)DECLARE 修饰的变量 是内部变量 要放在AS后面
(7)@Number float = null 意思是既可以传入float 也可以传入null
5.详解调用储存过程
(1)declare 定义一个接受output的变量
(2)exec执行储存过程 后面的是传入参数,
(3)最后的select @m_viewcount as a,@m_hotcount as b 是显示出来结果