演示:通过触发器对数据库进行级联操作
来源:互联网 发布:永久免费进销存软件 编辑:程序博客网 时间:2024/05/16 15:32
背景:
数据库中有两个表tableA 和tableB,tableA的主键是ID,ID 在tableB中是外键,这个外键约束叫 FK_tableB_ID
目标:
在更新tableA的主键的同时,更新tableB中的 ID
思路:
在更新tableA中的 ID 时触发一个触发器,这个触发器主要会作如下操作:
1.禁用约束 FK_tableB_ID
2.更新tableA中的 ID
3.更新tableB中的 ID
4.启用约束 FK_tableB_ID
SQL 代码:
--创建表tableACREATE TABLE tableA(ID nchar(4) NOT NULL PRIMARY KEY)GO--创建表tableBCREATE TABLE tableB(ID nchar(4) NOT NULL,CONSTRAINT FK_tableB_ID FOREIGN KEY(ID) REFERENCES tableA(ID))GO--创建触发器CREATE TRIGGER updateIDON tableAINSTEAD OF UPDATEASBEGINBEGIN TRYBEGIN TRANSACTION DECLARE @myID nchar(4) DECLARE @oldID nchar(4)SELECT @myID = ID FROM INSERTEDSELECT @oldID = ID FROM DELETED--1.禁用外键约束ALTER TABLE tableB NOCHECK CONSTRAINT FK_tableB_ID--2.更新tableA表UPDATE tableA SET ID = @myID WHERE ID = @oldID--3.更新tableB表UPDATE tableB SET ID = @myID WHERE ID = @oldID--4.启用外键约束ALTER TABLE tableB CHECK CONSTRAINT FK_tableB_IDCOMMIT TRANSACTIONEND TRYBEGIN CATCHROLLBACK TRANSACTIONEND CATCHENDGO
- 演示:通过触发器对数据库进行级联操作
- 通过代码代码示例对数据库进行CURD操作
- 有关NC65通过sql语句对数据库进行操作
- 通过pdo的query()方法对数据库进行操作
- 通过AsyncQueryHandler异步对数据库进行增删查操作
- 用触发器进行级联删除
- 通过jdbc对数据库操作
- 对ORACLE数据库进行操作
- 数据库基础入门(三)——通过JDBC对数据库进行增删改查操作
- 数据库基础入门(三)——通过JDBC对数据库进行增删改查操作
- 如何通过jsp对表格进行操作
- 通过Java Api对Hbase进行操作
- 通过MFC对SQLite进行操作
- 通过 jQuery,对 CSS 元素进行操作。
- PHP通过{}对字符串进行操作
- 用触发器对SQL Server数据库进行数据备份
- 用触发器对SQL Server数据库进行数据备份
- 用SQL Server 2005DDL触发器对数据库进行监控
- 使用XDC工具创建基于Codec Engine的dm6446双核工程
- Sql server left join,right join 和inner join的比较
- Android 系统下支持wifi和蓝牙共存通讯
- 关于AIS编码解码的两个小问题
- vss control
- 演示:通过触发器对数据库进行级联操作
- Linux IO子系统和文件系统读写流程
- 收集的程序员必读书
- 查询—聚合函数
- Flex中的CSS: (6) CSS匹配分析
- 啃书书
- strcpy和memcpy的区别
- POJ 1721 CARDS
- 键盘ctrl键弹性不良引起的疑似中毒