当前位置:网站首页 > 数据科学与大数据 > 正文

数据增删改操作(数据库的增删改差)



DML 触发器语句使用两种特殊的表:删除的表和插入的表。SQL Server 会自动创建和管理这两种表。您可以使用这两种驻留内存的临时表来测试特定数据修改的影响以及设置 DML 触发器操作条件。但不能直接修改表中的数据或对表执行数据定义语言 (DDL) 操作,例如 CREATE INDEX。

在 DML 触发器中,inserted 和 deleted 表主要用于执行以下操作:

  • 扩展表之间的引用完整性。
  • 在以视图为基础的基表中插入或更新数据。
  • 检查错误并采取相应的措施。
  • 找出数据修改前后表的状态差异并基于该差异采取相应的措施。

删除的表用于存储 DELETE 和 UPDATE 语句所影响的行的副本。在执行 DELETE 或 UPDATE 语句的过程中,行从触发器表中删除,并传输到删除的表中。删除的表和触发器表通常没有相同的行。

插入的表用于存储 INSERT 和 UPDATE 语句所影响的行的副本。在执行插入或更新事务过程中,新行会同时添加到 inserted 表和触发器表中。插入的表中的行是触发器表中的新行的副本。

更新事务类似于在删除操作之后执行插入操作;首先,旧行被复制到删除的表中,然后,新行被复制到触发器表和插入的表中。

在设置触发器条件时,应使用激发触发器的操作相应的插入的和删除的表。尽管在测试 INSERT 时引用删除的表或在测试 DELETE 时引用插入的表不会导致任何错误,但在这些情况下,这些触发器测试表将不包含任何行。

SQL Server 2008 不允许在 AFTER 触发器的插入的和删除的表中引用 text、ntext 或 image 列。但会包括这些数据类型,这只是为了向后兼容。存储大型数据的首选方法是使用 varchar(max)、nvarchar(max) 和 varbinary(max) 数据类型。AFTER 和 INSTEAD OF 触发器均支持插入的和删除的表中的 varchar(max)、nvarchar(max) 和 varbinary(max) 数据。有关详细信息,请参阅CREATE TRIGGER (Transact-SQL)。

在触发器中使用插入的表以强制实施业务规则的示例

由于 CHECK 约束只能引用定义了列级或表级约束的列,表间的任何约束(在本例中是业务规则)都必须定义为触发器。

以下示例将创建一个 DML 触发器。如果有人试图将一个新采购订单插入到 PurchaseOrderHeader 表中,此触发器将进行检查以确保供应商具有良好的信用等级。若要获取与刚插入的采购订单对应的供应商信用等级,必须引用 Vendor 表并将其与插入的表联接。如果信用等级太低,则显示信息,并且不执行该插入操作。

 
  
到此这篇数据增删改操作(数据库的增删改差)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 数据库基础知识整理方法(数据库基础知识思维导图)2025-05-24 10:18:09
  • orecale(orecale数据库)2025-05-24 10:18:09
  • sqluldr2导出无反应(sqluldr2导出数据丢失)2025-05-24 10:18:09
  • orecal数据库组件报错(orecal数据库安装)2025-05-24 10:18:09
  • goldendb数据库是国产的吗(goldengate支持几种数据库)2025-05-24 10:18:09
  • 外文全文型数据库包括哪些(外文全文文献数据库的结构包括)2025-05-24 10:18:09
  • ad9081(ad9081 数据格式)2025-05-24 10:18:09
  • 大数据算法涉及到外存的时候,要分析(大数据算法涉及到外存的时候,要分析什么)2025-05-24 10:18:09
  • goldendb数据库下载(goldendb数据库语法)2025-05-24 10:18:09
  • 数据库端口号是多少(数据库 端口)2025-05-24 10:18:09
  • 全屏图片