SQL Server一个表添加数据,引发另一个表更新数据 的一个简单触发器例子

简介: create trigger updateUserRoleToUserLoginon tb_UserRolefor insertasbegin update tb_UserLogin set RoleID=t.RoleID from tb_UserLogin tend 以上代码的简单意思就是:当tb_UserRole表中有数据插入时,级联更新tb_UserLogin表中的RoleID字段值为添加记录中RoleID的值。
create trigger updateUserRoleToUserLogin
on tb_UserRole
for insert
as
begin 
update tb_UserLogin set RoleID=t.RoleID 
  from tb_UserLogin t
end 

以上代码的简单意思就是:


当tb_UserRole表中有数据插入时,级联更新tb_UserLogin表中的RoleID字段值为添加记录中RoleID的值。



案例二:

有这样一种情况,有两张表 t1 和t2,后来由于变更,t2表中需要增加一个字段,这个字段正是t1表中的字段值(ps:t1和t2之间有外间关联)

现在保持原先的插入语句不变,但在插入数据的同时,希望修改后的t2表中新增的字段能同步t1表中的值,怎么办呢?


--针对实时险情同步citycode表
create trigger tr_insert
on 实时险情
after insert
as
declare @id int,@name varchar(20),@code varchar(20)
begin
  select @id=[OBJECTID],@code=[所属地区] from inserted;
  select @name=[cityname] from citycode where citycode=@code;
  update 实时险情 set [所在县]=@name where [OBJECTID]=@id;
end;

insert into 实时险情(上传时间,所属地区,所在县)  values('2011-10-18','1001','');

select * from 实时险情;


相关文章
|
SQL 关系型数据库 索引
关系型数据库SQLserver插入数据
【7月更文挑战第28天】
257 4
【YashanDB 知识库】通过触发器复制 varchar(4000 char) 列的数据导致乱码
**问题简介:** 客户在使用触发器将表 A 中 varchar(4000 char) 列的数据复制到表 B 时,发现表 B 中的数据出现乱码且与表 A 不一致。此问题影响所有 YashanDB 版本,原因是 YashanDB 在处理触发器场景下的大长度 varchar 数据复制时存在机制错误。为避免该问题,建议将列长度修改为 varchar(2000 char) 或更小。数据正确性无法保证,需谨慎处理。 **验证方法:** 可通过创建表 A 和 B 及相应触发器进行测试。
【YashanDB 知识库】通过触发器复制 varchar(4000 char) 列的数据导致乱码
|
SQL 关系型数据库 MySQL
基于SQL Server / MySQL进行百万条数据过滤优化方案
对百万级别数据进行高效过滤查询,需要综合使用索引、查询优化、表分区、统计信息和视图等技术手段。通过合理的数据库设计和查询优化,可以显著提升查询性能,确保系统的高效稳定运行。
765 9
|
SQL 容灾 关系型数据库
阿里云DTS踩坑经验分享系列|DTS打通SQL Server数据通道能力介绍
SQL Server 以其卓越的易用性和丰富的软件生态系统,在数据库行业中占据了显著的市场份额。作为一款商业数据库,外部厂商在通过解析原生日志实现增量数据捕获上面临很大的挑战,DTS 在 SQL Sever 数据通道上深研多年,提供了多种模式以实现 SQL Server 增量数据捕获。用户可以通过 DTS 数据传输服务,一键打破自建 SQL Server、RDS SQL Server、Azure、AWS等他云 SQL Server 数据孤岛,实现 SQL Server 数据源的流动。
797 0
阿里云DTS踩坑经验分享系列|DTS打通SQL Server数据通道能力介绍
【YashanDB知识库】通过触发器复制varchar(4000 char)列的数据导致乱码
【YashanDB知识库】通过触发器复制varchar(4000 char)列的数据导致乱码
【YashanDB 知识库】通过触发器复制 varchar(4000 char) 列的数据导致乱码
**简介:** 某客户在使用触发器将表 A 的 varchar(4000 char) 列数据复制到表 B 时,出现数据乱码且不一致的问题。经分析,YashanDB 在处理触发器场景下的 varchar(4000 char) 列数据复制时存在机制错误,影响所有版本。建议将列长度修改为 varchar(2000 char) 或更小以规避问题。通过特定 SQL 可验证该问题是否存在。
|
SQL 存储 缓存
SQL Server 数据太多如何优化
11种优化方案供你参考,优化 SQL Server 数据库性能得从多个方面着手,包括硬件配置、数据库结构、查询优化、索引管理、分区分表、并行处理等。通过合理的索引、查询优化、数据分区等技术,可以在数据量增大时保持较好的性能。同时,定期进行数据库维护和清理,保证数据库高效运行。
482 4
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
SQL 存储 数据处理
"SQL触发器实战大揭秘:一键解锁数据自动化校验与更新魔法,让数据库管理从此告别繁琐,精准高效不再是梦!"
【8月更文挑战第31天】在数据库管理中,确保数据准确性和一致性至关重要。SQL触发器能自动执行数据校验与更新,显著提升工作效率。本文通过一个员工信息表的例子,详细介绍了如何利用触发器自动设定和校验薪资,确保其符合业务规则。提供的示例代码展示了在插入新记录时如何自动检查并调整薪资,以满足最低标准。这不仅减轻了数据库管理员的负担,还提高了数据处理的准确性和效率。触发器虽强大,但也需谨慎使用,以避免复杂性和性能问题。
320 1
|
SQL 关系型数据库 数据库

热门文章

最新文章