--存储过程完成一段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数据库中的本地临时存储过程,且只有创建它的用户才能执行它;