MSSQL手札三 MSSQL存储过程

--存储过程完成一段sql代码的封装
create proc trim
--参数列表,多个间用逗号分隔
@str varchar(10)
as
--自定义代码段
declare @str1 varchar(10)
set @str1=LTRIM(RTRIM(@str))
print @str1

--使用存储过程
exec trim ' abc '
--'abc'
--===带输出参数的存储过程
--求两个数的和
create proc sum1
@num1 int,
@num2 int,
@result int output--表示这个参数可以将结果带出存储过程
as
set @result=@num1+@num2

declare @r1 int
exec sum1 1,2,@r1 output--必须要写output关键字,否则调用出错
print @r1

--===参数带默认值的存储过程,注意:默认值必须是最后一个参数
alter proc multi
@num1 int,
@num2 int=10 output--output的功能类似于C#中的ref修饰参数
as
set @num2=@num2*@num1
print @num2
--测试带出值的效果
declare @num int=2
exec multi 3,@num output
select @num
--测试默认值
exec multi 3

例子如上,其中存储过程名不能超过128个字。每个存储过程中最多设定1024个参数,另外在存储过程内部声明参数需要关键字declare,参数之间也需要逗号隔开。

注意事项:不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程。
 
临时存储过程,以井字号(#)作为其名称的第一个字符,则该存储过程将成为一个存放在tempdb数据库中的本地临时存储过程,且只有创建它的用户才能执行它;
posted @ 2015-02-06 11:05  洛晨随风  阅读(187)  评论(0编辑  收藏  举报