存储是数据库开发中经常使用的操作,可以把许多重复的操作(只是一些参数不同)模块化,
与编程中的函数类似,但是存储过程的功能大于函数
。
存储过程的定义如下。
1.创建存储过程
创建存储过程的语法如下。
1.1 一个简单的存储过程
新建查询中输入
create procedure pro_test
as
select * from Sales.SalesTerritory
即可创建一个简单的存储过程,结果储存在AdventureWorks2012——>可编程性——>存储过程中,调用时输入 exec pro_test 即可查询到对应表中的信息,如下图所示。
1.2 带参数的存储过程
在新建查询中输入
create procedure pro_test
@region nvarchar(10) --创建一个变量用来存储数据
as
select * from Sales.SalesTerritory where CountryRegionCode=@region 把要存储的数据赋值给region
即可,用 exec pro_test @region='US' 进行查询。结果如下图。
1.3使用输出参数
在制定输入列表时可以指定一部分参数作为输出参数。
在新建查询中输入
create procedure pro_test
@ter int,
@sales int output --定义一个输出参数sales
as
select @sales=a.SalesLastYear from Sales.SalesTerritory a where TerritoryID=@ter --ter获取territoryID具体值,sales输出对应行的SalesLastYear值
declare @out int
exec pro_test @ter='2',@sales=@out output --在查询时需要新建一个参数out以存储sales值
print @out
即可,结果如下图,输出了对应territoryID的SalesLastYear值
2.修改与删除存储过程
2.1修改存储过程
修改存储过程的语法如下。
修改存储过程的方法很简单,直接在已有的存储过程单击右键修改,出现修改界面,如下图,在图中对红框部分的功能进行修改即可。
2.2 删除存储过程
删除存储过程的语法如下。
新建查询中输入 drop procedure pro_test 即可。
3.临时存储过程
与创建临时表相似,存储过程也分为
本地临时过程和
全局临时过程。
创建临时表的方法参照:http://blog.csdn.net/s1314_JHC/article/details/78523844
- 本地临时表以#开头,仅对当前用户可见,从SQL Server断开连接后被删除。
- 全局临时表以##开头,对所有用户可见,从SQL Server断开连接后被删除。
创建临时存储过程时,在新建查询中输入
create procedure #pro_test --#pro_test表示本地临时过程
as
select * from Sales.SalesTerritory
即可,结果如下。如果再创建一个新的查询,则会出错。如下右图。