iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >如何在SQL Server中生成和使用CRUD存储过程
  • 433
分享到

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

2024-04-02 19:04:59 433人浏览 独家记忆
摘要

大多数数据库系统基于4个最简单的数据操作操作,这些操作称为CRUD。该首字母缩写词代表创建、读取、更新和删除。在开发和管理数据库时,可以使用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
 

COMMIT
GO

读取程序

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.Currency
WHERE  CurrencyCode = @CurrencyCode AND Name = @Name  
 
COMMIT
GO

更新程序

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

<code>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.Currency
SET    ModifiedDate = @ModifiedDate
WHERE  CurrencyCode = @CurrencyCode AND Name = @Name
 

COMMIT
GO</code>

删除程序

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

<code>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
 
DELETE
FROM   Sales.Currency
WHERE  CurrencyCode = @CurrencyCode AND Name = @Name
 
COMMIT
GO</code>

使用dbForge SQL Complete生成CRUD过程

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

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

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

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

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

更改CRUD生成设置

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

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

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

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

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

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

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

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

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

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

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

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

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

结论

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


您可能感兴趣的文档:

--结束END--

本文标题: 如何在SQL Server中生成和使用CRUD存储过程

本文链接: https://www.lsjlt.com/news/39797.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle怎么查询当前用户所有的表
    要查询当前用户拥有的所有表,可以使用以下 sql 命令:select * from user_tables; 如何查询当前用户拥有的所有表 要查询当前用户拥有的所有表,可以使...
    99+
    2024-05-14
    oracle
  • oracle怎么备份表中数据
    oracle 表数据备份的方法包括:导出数据 (exp):将表数据导出到外部文件。导入数据 (imp):将导出文件中的数据导入表中。用户管理的备份 (umr):允许用户控制备份和恢复过程...
    99+
    2024-05-14
    oracle
  • oracle怎么做到数据实时备份
    oracle 实时备份通过持续保持数据库和事务日志的副本来实现数据保护,提供快速恢复。实现机制主要包括归档重做日志和 asm 卷管理系统。它最小化数据丢失、加快恢复时间、消除手动备份任务...
    99+
    2024-05-14
    oracle 数据丢失
  • oracle怎么查询所有的表空间
    要查询 oracle 中的所有表空间,可以使用 sql 语句 "select tablespace_name from dba_tablespaces",其中 dba_tabl...
    99+
    2024-05-14
    oracle
  • oracle怎么创建新用户并赋予权限设置
    答案:要创建 oracle 新用户,请执行以下步骤:以具有 create user 权限的用户身份登录;在 sql*plus 窗口中输入 create user identified ...
    99+
    2024-05-14
    oracle
  • oracle怎么建立新用户
    在 oracle 数据库中创建用户的方法:使用 sql*plus 连接数据库;使用 create user 语法创建新用户;根据用户需要授予权限;注销并重新登录以使更改生效。 如何在 ...
    99+
    2024-05-14
    oracle
  • oracle怎么创建新用户并赋予权限密码
    本教程详细介绍了如何使用 oracle 创建一个新用户并授予其权限:创建新用户并设置密码。授予对特定表的读写权限。授予创建序列的权限。根据需要授予其他权限。 如何使用 Oracle 创...
    99+
    2024-05-14
    oracle
  • oracle怎么查询时间段内的数据记录表
    在 oracle 数据库中查询指定时间段内的数据记录表,可以使用 between 操作符,用于比较日期或时间的范围。语法:select * from table_name wh...
    99+
    2024-05-14
    oracle
  • oracle怎么查看表的分区
    问题:如何查看 oracle 表的分区?步骤:查询数据字典视图 all_tab_partitions,指定表名。结果显示分区名称、上边界值和下边界值。 如何查看 Oracle 表的分区...
    99+
    2024-05-14
    oracle
  • oracle怎么导入dump文件
    要导入 dump 文件,请先停止 oracle 服务,然后使用 impdp 命令。步骤包括:停止 oracle 数据库服务。导航到 oracle 数据泵工具目录。使用 impdp 命令导...
    99+
    2024-05-14
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作