小编典典

什么是存储过程?

all

什么是 “存储过程” ,它们是如何工作的?

存储过程的组成是什么(每个都 必须 是存储过程)?


阅读 78

收藏
2022-04-14

共1个答案

小编典典

存储过程是一组可以通过多种方式执行的 SQL 语句。大多数主要的 DBM 都支持存储过程;但是,并非所有人都这样做。您将需要使用特定的 DBMS
帮助文档来验证细节。因为我最熟悉 SQL Server,所以我将使用它作为我的示例。

要创建存储过程,语法相当简单:

CREATE PROCEDURE <owner>.<procedure name>

     <Param> <datatype>

AS

     <Body>

例如:

CREATE PROCEDURE Users_GetUserInfo

    @login nvarchar(30)=null

AS

    SELECT * from [Users]
    WHERE ISNULL(@login,login)=login

存储过程的一个好处是您可以将数据访问逻辑集中到一个地方,这样 DBA
就可以轻松地对其进行优化。存储过程还具有安全优势,您可以授予存储过程执行权限,但用户不需要对基础表具有读/写权限。这是对抗 SQL 注入的良好第一步。

存储过程确实有缺点,基本上是与基本CRUD操作相关的维护。假设对于每个表,您有一个插入、更新、删除和至少一个基于主键的选择,这意味着每个表将有
4 个过程。现在使用一个包含 400 个表的大小合适的数据库,并且您有 1600 个程序!这是假设你没有你可能会有的重复项。

这就是使用ORM或其他方法自动生成基本 CRUD 操作的优点。

2022-04-14