在使用Transanct-SQL语言编程过程中,可以将某些多次调用以实现某个特定任务的代码段编写成一个过程,将其保存在数据库中,并由SQL-Server服务器通过过程名调用它们,这些过程就叫做存储过程。
存储过程可以实现一下功能:
1.接收输入参数并以输出参数的格式想调用过程或批处理返回多个值。
2.包含用于在数据库中执行操作(包括调用其他过程)的编程语句。
3.向调用过程或批处理返回状态值,以指明成功或失败(以及失败的原因)。
存储过程分为有参的和无参的:
比如:
定义无参构造函数:
createprocup_info
@startDatedatetime,
@endDatedatetime
as
seletorderID,CompanyName,Salename,OrderDate
fromOrdersinnerjoinCustomer
onOrders.CustomerID=Cistomer.CustomerID
Seller.SaleID=Orders.SaleID
where(Orders.OrderDatebetween@startDateand@endDate)
go
调用构造函数:
execup_info
有输出的参存数过程的定义:
createprocmp_Customer
@CIDCHAR(3),
@CompanyNameCHAR(60)OUTPUT
@AddressCHAR(40)OUTPUT
AS
SELECT@CompanyName=CompanyName,
@Address=ADDRESS
FROMCustomerc
wherec.CustomerID=@CID
调用有参数的存储过程:
DECLARE@CompanyNameASCHAR(60)
DECLARE@ADDRESSASCHAR(40)
DECLARE@CIDASCHARE(3)
execmp_Customer'co2'
@CompanyNameoutput,
@Addressoutput
select@CompanyNameas'公司名',@Addressas'公司地址'