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

你可能感兴趣的:(MSSQL)