触发器---FOR INSERT与INSTEAD OF

SQL Server中的INSTEAD OF INSERT触发器:解决数据插入与更新的痛点并支持并发 触发器,我们可以以一种更加简洁和灵活的方式处理数据插入与更新的逻辑,避免了在应用程序代码中手动处理这两种情况的复杂性。特别是当需要在一个单一的操作中同时处理插入和更新逻辑时,这种局限性更加明显。触发器,我们可以在插入操作发生时执行自定义的逻辑,包括检查记录是否存在,并据此决定是插入新记录还是更新现有记录。为了解决这个问题,我提供的思路时创建一张lock表,在触发器插入语句前加上一句update语句。在数据库操作中,经常遇到需要插入新记录或更新已存在记录的情况。开两个窗口,指定在同一时间运行插入语句,就会。 阅读详情
注:
下面的实例由优快云论坛MS-SQL server版块中internetcsdn (公元1979年8月10日) 网友提供
测试一.
--------------
create table tb1 (id int identity(1,1), a varchar(10))
create trigger tri_tb1 on tb1 INSTEAD OF  insert
as 
begin
 insert tb1 (a)
 select a from inserted 
end

insert tb1(a)
select 'a'

select * from tb1
/*
id             a
-----------------
1             a
*/

-------------------------------------------------------------------
-------------------------------------------------------------------

测试一.
--------------
create table tb1 (id int identity(1,1), a varchar(10))
create trigger tri_tb1 on tb1 for  insert
as 
begin
 insert tb1 (a)
 select a from inserted 
end

insert tb1(a)
select 'a'

select * from tb1
/*
id             a
-----------------
1             a
2             a
*/

==========================================================
结论:FOR INSERT,插入动作完成后执行触发语句.
       INDSTEAD OF INSERT,用触发语句来代替插入语句.

AFTER
指定触发器只有在触发 SQL 语句中指定的所有操作都已成功执行后才激发。所有的引用级联操作和约束检查也必须成功完成后,才能执行此触发器。
如果仅指定 FOR 关键字,则 AFTER 是默认设置。


INSTEAD OF
指定执行触发器而不是执行触发 SQL 语句,从而替代触发语句的操作。

浅析触发器 --浅析触发器1、关于inserted 表和deleted 表触发器语句中使用了两种特殊的表:inserted 表和deleted 表inserted 表放的是本次insert操作插入的数据或本次update操作更新后的数据。deleted  表放的是本次delete操作删除的数据或本次update操作更新前的数据。2、inserted 表和deleted 表里的记录数。该 阅读详情

相关推荐

Nginx源码安装和基础配置

Nginx简介 nginx: 世界第二大web服务器软件,以高并发、低消耗著称,源自于俄罗斯,创建者 Igor(伊戈尔),2004年开源,最早以代理服务器的身份出现,2015成立nginx公司,2019年以6.7亿被F5 Networks公司收购。 代理服务器: 正向:squid 反向: squid:最古老的代理服务器 LVS: 优点: 1.抗负载能力强、是工作在网络4层之上仅作分发之用 2.配置性比较低,这是一个缺点也是一个优点,简单不易出错 3.工作稳定,抗负载能力很强,有完整的双机热备方案

hjyhjy0的博客 500

Instead Of Insert触发器

GPS平台、网站建设、软件开发、系统运维,找森大网络科技! https://cnsendnet.taobao.com 来自森大科技官方博客 http://www.cnsendblog.com/index.php/?p=2064 创建和维护数据库 INSTEAD OF INSERT 触发器 可以在视图或表上定义 INSTEAD OF INSERT 触发器来代替 INSERT 语句的标准操作。通常,在视图上定义 INSTEAD OF INSERT 触发器以在一个或多个基表中插入数据。 视图选择列表中的列可为空也

森大科技的博客 1046

汇川Easy 301 和MCGS进行Modbus RTU通讯(485)浮点数读取和写入

4DF0001对应寄存器D0,4DF0003对应寄存器D2。注意:要选com2口,com1口是232通讯。

qq_61916672的博客 2901

mysql 触发器的使用 FOR INSERT,DELETE,UPDATE

触发器语句中使用了两种特殊的表:deleted 表和 inserted 表。            Deleted 表用于存储 DELETE 和 UPDATE 语句所影响的行的复本。在执行 DELETE 或 UPDATE 语句时,行从触发器表中删除,并传输到 deleted 表中。Deleted 表和触发器表通常没有相同的行。          Inse

好儿郎~志在四方 9802

数据包络分析(超效率-SBM模型)附python代码

超效率-SBM模型超效率SBMpython代码(部分) 这段时间差不多忙完了,终于有时间可以来经营我的博客了。 上阵子挺多人私信我,原谅我记性不好,可能没有回复全。 这篇文章是超效率的扩展。 超效率SBM SBM本身就是非径向模型(non-radial model),想要了解径向超效率的请自行去前面翻阅。 上篇文章说到super-SBM的一个模型,公式为: 这个模型是分式模型,我们可以通过charnes cooper变换,将其转变成为: python代码(部分) 在编程过程中,本来我以为第一个模型是无

weixin_43217288的博客 3万+

Demo2Reward:用人类演示动态优化VLM奖励模型提示

多模态大模型(VLM)的奖励建模正面临核心瓶颈——静态提示导致语义鸿沟与泛化失效。其本质是将人类判断标准固化为不可更新的文本模板,使奖励信号脱离真实任务意图。Demo2Reward提出范式级改进:以结构化人类演示为元信号,驱动提示权重连续优化,实现从‘结果打分’到‘过程理解’的跃迁。该方法不修改VLM主干,却显著提升RLHF收敛效率与OOD鲁棒性,在医疗、工业质检等场景验证了跨任务迁移与热修复能力。它重新定义了提示工程的技术价值:不是前端微调,而是奖励系统的认知校准基础设施。

weixin_34302798的博客 408

SQLServer之创建INSTEAD OF INSERT,UPDATE,DELETE触发器

INSTEAD OF触发器工作原理 INSTEAD OF表示并不执行其所定义的操作INSERT,UPDATE ,DELETE,而仅是执行触发器本身,即当对表进行INSERT、UPDATE 或 DELETE 操作时,系统不是直接对表执行这些操作,而是把操作内容交给触发器,让触发器检查所进行的操作是否正确,如正确才进行相应的操作。因此,INSTEAD OF 触发器的动作要早于表的约束处理。 既可以...

小子pk了的博客 2566

Synopsys SCL许可证服务器搭建详解:从安装到生成.dat文件

本文详细解析了Synopsys SCL许可证服务器的完整搭建流程,从系统环境准备、SCL安装到生成.dat文件。重点阐述了如何正确获取HOST ID、配置License文件以及调试常见故障,为数字芯片设计工程师提供了一套从零到一的实战避坑指南,确保EDA工具链稳定运行。

weixin_29306011的博客 611

AFTER (FOR) INSERT与INSTEAD OF触发器区别

这两个触发器,如果弄不清楚,也许会有些混淆,下面列出两个触发器的概要: 触发器 应用于 执行次序 执行原来SQL 适用于 AFTER (FOR) INSERT 表 后 是 记录变更后的处理或检查 INDSTEAD OF INSERT INSTEAD OF UPDATE INSTEAD OF DELETE 表、视图 先...

weixin_34253126的博客 523

记一次网络风暴/网络环路

环境: win10 x64 ,联想云教室,电子教室,华三交换机。 状况描述: 最开始开机,一直卡在PXE启动界面,进不去系统。电脑技术张工说,先开教师机后开学生机。因为学生机开机需要读取教师机的镜像。但是状况依旧。 开始排查网络,重启交换机后,发现陆续有几台电脑能登陆进系统桌面了,但很慢起码过了5分钟以上才能进去。 教师机一直都是正常的,然后我在教师机部署电子教室。技术说这电子 教室与云教室IP冲突。 (那之后我查了下这两款软件的PID和端口,所占端口不一样,那没冲突) 我说不可能吧,这套软件在

Nightwish5的博客 2865

手把手解决GD32H759I-EVAL以太网通信三大坑:IP冲突、端口绑定失败、LWIP内存泄漏

本文针对GD32H759I-EVAL开发板在以太网通信调试中常见的三大难题——IP地址冲突、端口绑定失败和LWIP内存泄漏,提供了详细的实战排障指南。文章深入分析了问题根源,并给出了具体的网络配置、端口管理策略和内存泄漏检测方法,帮助开发者快速定位并解决嵌入式网络通信中的棘手问题,确保系统稳定运行。

weixin_29196315的博客 140

SQL Server触发器以For类为列

SQL Server触发器 定义 触发器是一种专用类型的存储过程,它被捆绑到SQL Server 的表格或者视图上。 1、AFTER 指定触发器仅在触发 SQL 语句中指定的所有操作都已成功执行时才被触发。所有的引用级联操作和约束检查也必须在激发此触发器之前成功完成。用英文简单理解就是 在…之后执行 2、FOR的理解就是与AFTER类同,即AFTER(FOR) 3、INSTEAD OF,在执行SQL语句前取代。INSREAD OF是指定执行 DML 触发器而不是触发 SQL 语句,因此,其优先级高于触发

Sunbqfor的博客 765

SXU—软件测试方法和技术-朱少民-第三部分 软件测试方法大题汇总-附考点和相关习题及解答

软件测试方法和技术-朱少民-第三部分 软件测试方法—-最少测试用例个数,强一般弱一般强健壮、边界值分析、ns流程图、白盒逻辑覆盖代码、等价类划分,逻辑组合(条件)覆盖,计算圈复杂度等—附考点和相关习题及解答

weixin_63597914的博客 2211

记一次SQL Server Insert触发器编写过程

实现功能:新增特定类型的新闻时,自动追加特定的背景图片。 第一版(错误信息:不能在 'inserted' 表和 'deleted' 表中使用 text、ntext 或 image 列),代码如下: --创建insert插入类型触发器 if (object_id('tgr_news_QA_insert', 'tr') is not null) drop trigger ...

MS_DOS_1991的博客 301

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

数据库后台编程技术中的触发器

数据库后台编程技术中的触发器 触发器是一种特殊的存储过程,它不需要用户来直接调用,而是在对表中的数据进行UPDATE、INSERT或DELETE操作时自动触发进行的。 触发器的三种类型 DML触发器 如果用户要通过数据操作语言(DML)事件编辑数据,则执行DML触发器。DML事件是针对表或视图的INSERT、UPDATE或DELETE语句。 DDL触发器 DDL触发器用于响应各种数据定义语言(DDL)事件,这些事件主要对应T-SQL中的CREATE、ALTER和DROP语句,以及执行过程类似于D

uniquemr的博客 582

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

不显示触发器中的Rollback Tran的出错信息

触发器中使用Rollback Tran来取消要执行的操作,但是这样会显示错误提示信息: ALTER TRIGGER TestTriggerON TestTableFOR INSERT AS ROLLBACK TRAN INSERT INTO TestTable VALUES ( 4 ) Msg 3609, Level 16, State 1, Line 2The transac...

weixin_30699463的博客 388

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

触发器的定义——解决主外键约束与触发器冲突问题

触发器的定义(sql server2008) 解决主外键约束与触发器冲突问题 实验题目 题目六: 药品(编号,名称,价格,厂商) 处方(药品编号,数量,医生编号) 医生 (编号,姓名,科室,职称) 建立药品的delete 触发器,只有当此药品品没有人买时才可删除,若有处方记录不能删除。 插入的数据 insert into medicine (mno,mname,price,industno)values(1,'阿司匹林',5.5,'北方制药'); insert into medicine (mno,mn

qq_45813040的博客 4143

数据库触发器for,instead of和after的使用

  最近搞SQL server2008 R2数据库课程设计,在使用for,instead of和after是遇到一点小阻碍,最终解决: 创建的触发器如下: 1 USE [choose_Man] 2 GO 3 /****** Object: Trigger [dbo].[tri_field] Script Date: 11/24/2017 20:49:38 ******/ ...

weixin_30548917的博客 798

数据库触发器

文章目录触发器触发器的种类创建触发器管理触发器 触发器 触发器的种类 触发器的种类:2(事前,事后)*3(添加,更新,删除)=6种 事前:for(类似于before)/instead of(表存涉及外键instead of) 事后:after 创建触发器 (1)INSERT触发器 eg:使用create trigger命令建立名为“成绩tri_insert”的触发器,该触发器用于判断要插入的记录,...

编程猴 1033

sqlserver 触发器语法

语法:Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger)CREATE TRIGGER [ schema_name . ]trigger_name ON { table | view } [ WITH <dml_trigger_option> [ ,...n ] ]{ FOR...

weixin_30409849的博客 215

SQL Server触发器

触发器是一类特殊的存储过程,只有到特定事件发生时在会调用。触发器有两种类型:数据定义语言(DDL)触发器和数据操纵语言(DML)触发器。 一、DDL触发器 二、DML触发器         DML触发器是附加到特定表或视图的代码片段。只有当附加到表的事件发生时,触发器代码才会自动执行。触发器不能够显示调用。DML触发器的类型:1)INSERT触发器;2)DELETE触发器;3)UPDATE触

无语的阿辉 759

ORACLE触发器详解

http://blog.youkuaiyun.com/indexman/article/details/8023740/ 触发器是许多关系数据库系统都提供的一项技术。在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块。 8.1 触发器类型     触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触

only_musm的博客 656

SQL触发器语法参考

SQL触发器语法参考Create TRIGGER trigger_name ON { table | view } [ WITH ENCRYPTION ] {     { { FOR | AFTER | INSTEAD OF } { [ Insert ] [ , ] [ Update ] }         [ WITH APPEND ]         [ NOT FOR REPLICATION

432
上一篇: Byval与Byref的区别
下一篇: VB.NET and C# 语法比较手册
PPLUNCLE
博客等级 码龄24年 3粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值