首页 > 数据库技术 > 详细

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

时间:2020-02-27 11:20:45      阅读:72      评论:0      收藏:0      [点我收藏+]

在本文中,请参阅如何在SQL Server中生成和使用CRUD存储过程。

大多数数据库系统基于缩写CRUD调用的最简单的4种数据操作操作进行操作。 此首字母缩写词代表CREATE,READ,UPDATE和DELETE。

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

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

仔细研究CRUD存储过程

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

但是,它不是强制性的,可以遵循自己喜欢的任何命名方式。

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

创建程序

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

 1 SQL
 2 
 3  
 4 
 5 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  
 6 
 7 BEGIN TRAN
 8 
 9  
10 
11 INSERT INTO Sales.Currency (CurrencyCode, Name, ModifiedDate)
12 
13 SELECT @CurrencyCode, @Name, @ModifiedDate
14 
15  
16 
17 /*
18 
19 -- Begin Return row code block
20 
21  
22 
23 SELECT CurrencyCode, Name, ModifiedDate
24 
25 FROM   Sales.Currency
26 
27 WHERE  CurrencyCode = @CurrencyCode AND Name = @Name AND ModifiedDate = @ModifiedDate
28 
29  
30 
31 -- End Return row code block
32 
33  
34 
35 */
36 
37 COMMIT
38 
39 GO

 

阅读程序

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

 1 SQL
 2 
 3  
 4 
 5 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  
 6 
 7 BEGIN TRAN
 8 
 9  
10 
11 SELECT CurrencyCode, Name, ModifiedDate
12 
13 FROM   Sales.Currency
14 
15 WHERE  CurrencyCode = @CurrencyCode AND Name = @Name  
16 
17  
18 
19 COMMIT
20 
21 GO

 

 

更新程序

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

 1 SQL
 2 
 3  
 4 
 5 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  
 6 
 7 BEGIN TRAN
 8 
 9  
10 
11 UPDATE Sales.Currency
12 
13 SET    ModifiedDate = @ModifiedDate
14 
15 WHERE  CurrencyCode = @CurrencyCode AND Name = @Name
16 
17  
18 
19 /*
20 
21 -- Begin Return row code block
22 
23  
24 
25 SELECT ModifiedDate
26 
27 FROM   Sales.Currency
28 
29 WHERE  CurrencyCode = @CurrencyCode AND Name = @Name
30 
31  
32 
33 -- End Return row code block
34 
35  
36 
37 */
38 
39 COMMIT
40 
41 GO

 

 

删除程序

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

 1 SQL
 2 
 3  
 4 
 5 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  
 6 
 7 BEGIN TRAN
 8 
 9  
10 
11 DELETE
12 
13 FROM   Sales.Currency
14 
15 WHERE  CurrencyCode = @CurrencyCode AND Name = @Name
16 
17  
18 
19 COMMIT
20 
21 GO

 

 

使用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提供了类似的选项-它使可以选择是否要返回更新的行。

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

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

结论

所见,使用CRUD命令实现和管理数据操作过程比使用临时SQL语句更为可取。 借助dbForge SQL Complete加载项,可以轻松完成此操作。 但是,使用CRUD并不是唯一的功能(而且很长一段时间)。

 

> 喜欢这篇文章的可以点个赞,欢迎大家留言评论,记得关注我,每天持续更新技术干货、职场趣事、海量面试资料等等
 > 如果你对java技术很感兴趣也可以交流学习,共同学习进步。 
> 不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代

文章写道这里,欢迎完善交流。最后奉上近期整理出来的一套完整的java架构思维导图,分享给大家对照知识点参考学习。有更多JVM、Mysql、Tomcat、Spring Boot、Spring Cloud、Zookeeper、Kafka、RabbitMQ、RockerMQ、Redis、ELK、Git等Java干货

技术分享图片

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

原文:https://www.cnblogs.com/youruike1/p/12370713.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!