千家信息网

如何在SQL Server中生成和使用CRUD存储过程

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,大多数数据库系统基于4个最简单的数据操作操作,这些操作称为CRUD。该首字母缩写词代表创建、读取、更新和删除。在开发和管理数据库时,可以使用CRUD存储过程来执行所有与数据有关的任务。这种存储过程的好
千家信息网最后更新 2026年11月02日如何在SQL Server中生成和使用CRUD存储过程

大多数数据库系统基于4个最简单的数据操作操作,这些操作称为CRUD。该首字母缩写词代表创建、读取、更新和删除。

在开发和管理数据库时,可以使用CRUD存储过程来执行所有与数据有关的任务。这种存储过程的好处是,一旦编写了一次,便可以根据需要重复使用多次,而无需每次都编写新代码。这是对临时SQL语句的重大改进,临时SQL语句应在每次使用它们时重新编写。

让我们详细了解每个CRUD存储过程。

仔细研究CRUD存储过程

在继续之前,我们要说一下CRUD存储过程的命名。将它们命名为每个过程都包含它们所应用的表的名称,并且以它们所执行的操作的名称结束,这通常是一种很好的做法。这样,为同一表编写的所有过程将被分组在一起,并且更容易搜索。

但是,它不是强制性的,您可以坚持自己喜欢的任何命名模式。

现在,让我们看一下第一种过程类型。

创建程序

这些将执行INSERT语句,创建一个新记录。此类过程应为表的每一列接受一个参数。

IF OBJECT_ID('Sales.usp_Currency_Insert') IS NOT NULL BEGIN      DROP PROC Sales.usp_Currency_Insert  END  GO CREATE PROC Sales.usp_Currency_Insert      @CurrencyCode NCHAR(3),     @Name dbo.Name,     @ModifiedDate datetime AS      SET NOCOUNT ON      SET XACT_ABORT ON  BEGIN TRAN INSERT INTO Sales.Currency (CurrencyCode, Name, ModifiedDate)SELECT @CurrencyCode, @Name, @ModifiedDate /*-- Begin Return row code block SELECT CurrencyCode, Name, ModifiedDateFROM   Sales.CurrencyWHERE  CurrencyCode = @CurrencyCode AND Name = @Name AND ModifiedDate = @ModifiedDate -- End Return row code block */COMMITGO

读取程序

READ过程根据输入参数中提供的主键检索表记录。

IF OBJECT_ID('Sales.usp_Currency_Select') IS NOT NULL BEGIN      DROP PROC Sales.usp_Currency_Select  END GO CREATE PROC Sales.usp_Currency_Select     @CurrencyCode NCHAR(3),     @Name dbo.Name AS     SET NOCOUNT ON      SET XACT_ABORT ON  BEGIN TRAN SELECT CurrencyCode, Name, ModifiedDate FROM   Sales.CurrencyWHERE  CurrencyCode = @CurrencyCode AND Name = @Name   COMMITGO

更新程序

这些过程使用WHERE子句中指定的记录的主键在表上执行UPDATE语句。就像CREATE过程一样,它为每个表列接受一个参数。

IF OBJECT_ID('Sales.usp_Currency_Update') IS NOT NULL BEGIN      DROP PROC Sales.usp_Currency_Update END  GO CREATE PROC Sales.usp_Currency_Update @CurrencyCode NCHAR(3), @Name dbo.Name, @ModifiedDate datetime AS      SET NOCOUNT ON      SET XACT_ABORT ON  BEGIN TRAN UPDATE Sales.CurrencySET    ModifiedDate = @ModifiedDateWHERE  CurrencyCode = @CurrencyCode AND Name = @Name /*-- Begin Return row code block SELECT ModifiedDateFROM   Sales.CurrencyWHERE  CurrencyCode = @CurrencyCode AND Name = @Name -- End Return row code block */COMMITGO

删除程序

此过程将删除该语句的WHERE子句中提供的行。

IF OBJECT_ID('Sales.usp_Currency_Delete') IS NOT NULL BEGIN      DROP PROC Sales.usp_Currency_Delete END  GO CREATE PROC Sales.usp_Currency_Delete  @CurrencyCode NCHAR(3), @Name dbo.Name AS      SET NOCOUNT ON      SET XACT_ABORT ON  BEGIN TRAN DELETEFROM   Sales.CurrencyWHERE  CurrencyCode = @CurrencyCode AND Name = @Name COMMITGO

使用dbForge SQL Complete生成CRUD过程

在SSMS和Visual Studio中均可使用的dbForge SQL Complete插件,我们只需单击几下便可以生成CRUD过程,并具有多种选项,这些选项允许配置这些过程的生成方式。在本文中,我们将使用SSMS展示SQL Complete的功能。

要为一个表生成CRUD过程,右键单击该表,转到SQL Complete菜单,然后单击Script Table as CRUD:

完成此操作后,将打开一个新的SQL文件。在这里,您可以看到该表的所有CRUD操作。

更改CRUD生成设置

要配置dbForge SQL Complete如何生成CRUD,您首先需要转到窗口顶部的SQL Complete菜单,然后单击"选项":

结果将在"选项"窗口中打开,转到"CRUD"菜单,然后单击"常规":

在此选项卡中,您可以指定CRUD生成过程中包括哪些过程,并指定要使用的哪个列的顺序--按字母顺序还是按序号顺序。

您也可以通过在CRUD菜单中选择相应的选项来分别配置每个过程。首先,您可以手动更改生成的过程的名称:

接下来,每个过程都有唯一的选项。

对于SELECT,如果输入参数为null,则有一个Return all data复选框。

对于INSERT,可以指定是否在完成后返回插入的行。

类似的选项可用于UPDATE -它使您可以选择是否要返回更新的行。

没有其他用于DELETE的唯一选项。

最后,对于每个过程,都有"代码模板"部分。在本节中,您可以更改指定过程的代码的生成方式。在代码模板中,以$ name $格式提供了参数(例如$ schema $或$ columns $)。通过更改这些参数,可以修改所生成过程的代码。

结论

如您所见,使用CRUD命令实现和管理数据操作过程比使用临时SQL语句更为可取,并且可以借助dbForge SQL Complete插件轻松完成此操作。


过程 生成 参数 语句 存储 代码 数据 程序 菜单 名称 顺序 更新 配置 子句 字母 插件 数据库 方式 模板 管理 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海挚品互联网科技有限公司 互联网核心科技是什么 互联网络科技有限公司 互联网科技公司怎么样 碳银互联网科技 华中科技大学互联网 新华互联网科技校企合作 海南科技产业互联网平台 科技与互联网的利与弊 昭通云南众福互联网科技有限公司 互联网经济与金融科技 昭通互联网科技选哪家 阿大互联网科技有限公司 江阴互联网智能科技产品进口 恒生互联网科技指数跳水 亳州好赞互联网科技有限公司 高科技互联网发展前景如何 互联网科技大赛获奖感言 互联网科技职业技能培训学校 六子台科技互联网展会 天扬科技互联网广告 受益于互联网科技的高速发展 厦门千工互联网科技有限公司 怎样加入科技互联网 江苏互联网智能科技软件 万物互联网智能科技 北京互联网科技类企业分布 中国互联网公司的科技投入 求路客互联网科技电话 上海旺乐尼互联网科技有限公司
0