解析SQLServer的存储过程
微软的SQL Server存储过程机制通过组合Transact-SQL语句,可以大大简化数据库开发过程。
存储过程函数的优点
为什么要使用存储过程?以下是存储过程技术的主要优势:
编译预执行程序。SQL Server只需要对每个存储过程编译一次,然后就可以重用执行计划。该功能通过重复调用存储的程序,极大地提高了程序的性能。
缩短客户机/服务器之间的信息量。如果您的工作环境带宽有限,那么存储过程技术当然可以满足您,因为它可以将需要传输的冗长SQL查询缩短为一行。
有效地重用代码和编程。存储过程可以由多个用户或多个客户端程序使用。这可以减少程序开发周期的时间。
增强安全控制。您可以允许用户单独执行存储过程,而不给他们访问表的权限。
结构
存储过程的结构与其他编程语言非常相似。存储过程接受输入参数形式的数据。这些输入参数用于在执行一系列语句时生成结果。使用记录集、输出参数和返回代码返回结果。听起来很复杂,但实际上存储的程序非常简单。
例子
假设我们有下面这个名为Inventory的表,表中的数据需要实时更新。仓库经理将不断检查仓库中的库存数量和可供交付的库存数量。以前,每个地区的仓库经理都会进行以下查询:
以下是报价片段:
select product,quantity
from inventory
where warehouse = ' fl '
这样的查询使得SQL Server的性能非常低效。每次仓库管理器执行查询时,数据库服务器都必须重新编译它并再次开始执行。这种查询还要求仓库管理员具备SQL知识并能访问表数据。
我们可以通过使用存储过程来简化这个查询过程。首先,创建一个名为sp_GetInventory的流程,该流程可以获取现有仓库的库存水平。以下是创建该程序的SQL代码:
下面是引用的片段:
create procedure sp _ get inventory
@ location varchar(10)
as
select product,quantity
from inventory
where warehouse = @ location。
区域A的仓库经理可以执行以下命令来获取库存水平:
以下是引用片段:
执行sp _ get inventory' fl '
B区域的仓库管理员可以使用相同的存储过程来访问该区域的库存信息。
下面是一个引用片段:
ExecuteSp _ GetInventory ' ny '
当然,这只是一个简单的例子,但是我们可以看到存储过程的好处。仓库管理人员不必了解SQL或存储过程的内在工作原理。从性能的角度来看,存储过程无疑大大提高了工作效率。SQL Server只需创建一次执行计划,然后就可以重用存储过程。它只需要在每次执行时输入适当的参数。
库存形式:
id产品仓库数量
142四季豆ny 100
214豆fl 200
825玉米ny 140
512利马豆ny 180 [/br/ ]491番茄FL 80
379西瓜FL 85
0条评论