gpt4 book ai didi

sql - 什么是存储过程?

转载 作者:行者123 更新时间:2023-12-01 16:19:49 25 4
gpt4 key购买 nike

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

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

最佳答案

存储过程是一批可以通过多种方式执行的 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 注入(inject)的良好开端。

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

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

关于sql - 什么是存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/459457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com