SqlServer触发器实现表的级联插入、级联更新

  首先建立两张表,分别为test1与test2,期望在更改test1的时候,test2的相关记录能够同时做出更改。假定test1与test2的表结构相同,如下表所示

name age
   

触发器实现级联插入:

create trigger test3
on test1
after insert
as
insert into test2 select name,age from inserted

触发器实现级联更新:

create trigger test4
on test1
after update
as begin
update test2 set age = a.age from test2,inserted as a where a.name = test2.name
end

执行:

insert into test1 values (‘merle‘,‘99‘);

输出:

select * from test1;【merle 99】
select * from test2;【merle 99】

原文地址:https://www.cnblogs.com/merle/p/9262509.html

时间: 2024-08-29 14:35:29

SqlServer触发器实现表的级联插入、级联更新的相关文章

SQL- SQL插入与更新删除

一 前言 经过之前的 [SQL]-SQL介绍, [SQL]- SQL检索阶段一, [SQL]-sql检索阶段二 的三篇文章你已经学会的sql的相关概念和如何查询数据库,这篇文章主要后续对数据库表的进入插入,更新,和删除操作,那么你学完这篇就等于最基础的sql开发你已经学完了,如果跟java结合起来也就是crud:后续会推出sql的进阶学习文章,当然出文章的速度不是很快,原因是还有其他类型文章要出: 建表语句: CREATE TABLE `user` ( `id` int(11) NOT NULL

Mybatis 级联插入更新

刚开始接触Mybatis,在进行级联插入更新时发现不是很方便: 现有表A和B,B表的主键为A表的外键,先有需求是,插入一条B,并且与B关联的A也随之更新其外键. 所做的方式是先Save一条B, 然后查找出来B. 然后通过A的Set 方法把B set进去 然后UPDATE A 过程比较繁琐,不知大家有没有什么好的做法

SqlServer 垂直分表

当单表数据太多时.我们能够水平划分,參考 SqlServer 分区视图实现水平分表 ,水平划分能够提高表的一些性能. 而 垂直分表 则相对非常少见到和用到,由于这可能是数据库设计上的问题了.假设数据库中一张表有部分字段差点儿从不不更改但常常查询,而部分字段的数据频繁更改.这样的设计放到同一个表中就不合理了,相互影响太大了.在已存在改情况的表的时候,能够考虑按列拆分表,即垂直拆分. 由于垂直分表的案例比較少,近期由于存在这种表,所以个人捣鼓了一下. 源表设计结构: -- 源表 CREATE TAB

SQLServer 触发器入门

阅读目录 一:触发器的优点 二:触发器的作用 三:触发器的分类 四:触发器的工作原理 五:创建触发器 六:管理触发器 概念:   触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,当对一个表进行操作( insert,delete, update)时就会激活它执行.触发器经常用于加强数据的完整性约束和业务规则等. 触发器可以从 DBA_TRIGGERS ,U

SQLServer触发器的使用

创建: [sql] view plain copy create trigger trigger_name on {table_name view_name} {for After Instead of } [ insert, update,delete ] as sql_statement 删除触发器: [sql] view plain copy drop trigger trigger_name 查看数据库中已有触发器: [sql] view plain copy use jxcSoftwa

MySQL中利用外键实现级联删除、更新

MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引.在创建索引的时候,可以指定在删除.更新父表时,对子表进行的相应操作,包括RESTRICT.NO ACTION.SET NULL和CASCADE.其中RESTRICT和NO ACTION相同,是指在子表有关联记录的情况下父表不能更新:CASCADE表示父表在更新或者删除时,更新或者删除子表对应记录:SET NULL则是表示父表在更新或者删除的时候,子表的对应字段被S

关于数据的级联删除和更新

两张表:“ProductCategory”,“Product”. 有一个需求是这样的:在删除某个ProductCategory 的时候,同时删除该Category的products. 在MySQL中利用外键实现级联删除 创建以下测试用数据库表: CREATE TABLE `roottb` ( `id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL, `data` VARCHAR(100) NOT NULL DEFAULT '', PRIMARY KEY (`i

SqlServer——触发器

一:触发器基本知识  触发器是一种特殊的存储过程,但没有接口(输入输出参数),触发器是引发它们的事务的一部分,因为SqlServer自动将引发它们的SQL语句和触发器作为一个隐式事务,因此当触发器正确执行后,事务才认为是完整的,触发器也可已在触发器内部通过 rollback tran 来回滚事务,当触发的SQL语句是隐式事务时,只回滚引发触发器的SQL语句和触发器:是显式事务时,将撤销从最外层 begin tran 开始的所有操作.所以触发器通常用来实现对表实施复杂的完整性约束和强制业务规则,它

一次SQLSERVER触发器编写感悟

背景:BOSS须要我写一个工厂採集端到服务器端的数据同步触发器,数据库採用的是sqlserver2008 需求:将多台採集机的数据同步到server中,假设採集端数据库与server数据库连接失败则将数据保存到记录表中 前期思路:从採集端创建server端的数据库链接,通过採集端的insert,update触发.同一时候往远程表写入 问题:因为初始接触sqlserver.对sqlserver触发器了解不深.查阅一些资料后写出了满足正常情况下(连接服务器数据库正常)的触发器. create tri