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

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

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

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

仔细研究CRUD存储过程

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

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

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

创建程序

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

 SQL

 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, ModifiedDate

 FROM   Sales.Currency

 WHERE  CurrencyCode = @CurrencyCode AND Name = @Name AND ModifiedDate = @ModifiedDate

 -- End Return row code block

 */

 COMMIT

 GO

阅读程序

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

 SQL

 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过程一样,它为每个表列接受一个参数。

 SQL

 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

 /*

 -- Begin Return row code block

 SELECT ModifiedDate

 FROM   Sales.Currency

 WHERE  CurrencyCode = @CurrencyCode AND Name = @Name

 -- End Return row code block

 */

 COMMIT

 GO

 

删除程序

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

 SQL

 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

使用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存储过程的更多相关文章

  1. 浅谈如何在SQL Server中生成脚本

    在生成脚本过程中,有很多参数可以选择,合理的配置这些参数,可以让我们很方便的按照我们的期望生成脚本. 生成脚本的一些选项,如下图: 我这里是SQL 2005 的选项, SQL 2008 的选项跟这个稍 ...

  2. SQL Server中生成测试数据

    原文:SQL Server中生成测试数据 简介      在实际的开发过程中.很多情况下我们都需要在数据库中插入大量测试数据来对程序的功能进行测试.而生成的测试数据往往需要符合特定规则.虽然可以自己写 ...

  3. 如何在Sql Server中读取最近一段时间的记录,比如取最近3天的或最近3个月的记录。

    如何在Sql Server中读取最近一段时间的记录,比如取最近3天的或最近3个月的记录. 主要用到DATEADD函数,下面是详细语句 取最近3天 select * from 表名where rq> ...

  4. SQL Server中使用msdb数据库的存储过程sp_delete_backuphistory和sp_delete_database_backuphistory来删除备份和恢复历史数据

    根据微软文档对sp_delete_backuphistory存储过程的介绍,SQL Server在每次备份和恢复数据库后,会向msdb系统数据库的备份和恢复历史表写入数据,如果SQL Server经常 ...

  5. 从算法入手讲解如何在SQL Server中实现最优最简

    算法是计算机科学中一个重要的研究方向,是解决复杂问题的关键.在计算机世界中,算法无处不在.数据库是存储数据和执行大批量计算的场所,在数据库中使用一些简单的SQL命令,进行存储.查询.统计.以解决现实世 ...

  6. 如何在SQL Server中的SELECT TOP 中使用变量

    语法   [ TOP (expression) [PERCENT] [ WITH TIES ] ] 注意:expression 是在一对圆括号内的,而之后又有如下的例子 在 TOP 中使用变量 以下示 ...

  7. 如何把SQL Server中一个表,一个存储过程,一个视图等改为系统表,系统存储过程,系统视图等

    使用如下存储过程即可: EXEC sys.sp_MS_marksystemobject '[dbo].[TableNameToSystem]' 其中"[dbo].[TableNameToSy ...

  8. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  9. 在64位SQL Server中创建Oracle的链接服务器

    当我们同时使用SQL Server和Oracle来存储数据时,经常会用到跨库查询.为了方便使用跨库查询,一个最好的办法就是通过创建链接服务器来实现.既可以在SQL Server中创建Oracle的链接 ...

随机推荐

  1. 动画 | 什么是平衡二分搜索树(AVL)?

    二分搜索树又名有序二叉查找树,它有一个特点是左子树的节点值要小于父节点值,右子树的节点值要大于父节点值.基于这样的特点,我们在查找某个节点的时候,可以采取二分查找的思想快速找到这个节点,时间复杂度期望 ...

  2. 学习 lind 语 里的一些组件使用。

    step one autofac : link:http://files.cnblogs.com/files/ganmk--jy/AutofacTest.rar step two 还有很多

  3. 使用requests模块的网络编程

    python操作网络,也就是打开一个网站,或者请求一个http接口,本篇是介绍使用request模块的使用方式. 在使用requests模块之前需要先安装,在cmd中输入:pip install re ...

  4. Postwoman-接口测试工具

    地址是:https://postwoman.io/ ,不过只能使用它们自己提供的测试接口,如果你调试自己的API接口的话,你需要自己部署一套代码. 自己搭建一套Postwomen环境的话,只需要安装了 ...

  5. Centos 7 最小化时间服务部署配置

    基本原理 Centos 7 我所了解有两种时间服务,NTPD与chronyd:两者对Centos 7 的支持都很好,有对chrony非常夸赞的,不过我这里只讲ntpd:有对chrony有想法的可以自行 ...

  6. 双括号(()),shell与C++的桥梁

    使用语法: ((表达式))用来扩展Shell中的算术运算,以及赋值运算,扩展for,while,if条件测试运算. 注意点: 1.在双括号结构中,所有的表达式可以像c语言一样,如a++,b-- 2.在 ...

  7. ROC 曲线

    Receiver Operating Characteristic (接收机操作特性曲线) 是以虚警率为横轴,以击中率为纵轴,长成如下模样: 所谓击中率(hit)是指将正样本判断为正样本的比例,而虚警 ...

  8. 【编程的乐趣-用python解算法谜题系列】谜题一 保持一致

    谜题一 保持一致 谜题 假设有一大群人排队等待观看棒球比赛.他们都是主场球迷,每个人都戴着队帽,但不是所有人都用同一种戴法,有些人正着戴,有些人反着戴. 假定你是保安,只有在全组球迷帽子戴法一致时才能 ...

  9. 13、FrameRely

    Frame Relay 美国国家标准化协会(American National Standard Institute,简称ANSI)国际电信联盟远程通信标准化组 ITU-T 1.是由ITU和ANSI制 ...

  10. C语言之灵魂 指针学习

    指针是c语言的难点 称之为c语言的灵魂一点也不为过,不过指针用好了能事半功倍,用不好bug满天飞. 一.指针的概念 指针也是变量只不过是特殊的变量,指针的值是另一个变量的地(也就是变量所在的内存地址) ...