`
冷寒冰
  • 浏览: 251545 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

浅入浅出带有主外键约束的触发器

 
阅读更多
网上有很多触发器的例子,但表之间都是没有主外键约束的,下面做一个例子实现带有主外键约束的触发器。
现有两张表:部门表(department) deNum int primary key   --部门编号
                              deName nvarchar(50)   --部门名称
            员工表(employee)  emNum  int primary key   --员工编号
                                 deNum   int foregin key
                             references department(deNum)--所属部门
需求:当更新主表的部门编号时(当然实际中,我们通常是不会去更新这个字段的)同时更新从表的所属部门编号。我们用触发器实现:
create trigger tri_updateDeNum
on department
for update
as
begin
declare @oldid int,
        @newid int
  select @oldid=deNum from deleted--获得更新前的id
  select @newid=inserted.deNum from department,inserted where department.deNum=inserted.deNum--获取更新后的id
--if(@oldid is null)--判断oldid是否已经取到
--print('@oldid is null')
--if(@newid is null) 判断newid是否已经取到
--print('@newid is null')
if(@oldid is null) or (@newid is null) or(@oldid=@newdi)
--print('failture')
return
--更新从表
update employee set deNum=@newID where deNum=@oldID
end    
          
1
0
分享到:
评论

相关推荐

    数据库作业第三章.pdf

    - 条件连接:带有特定连接条件的连接。 - 等连接:条件为等式的连接,是条件连接的特例。 - 自然连接:等连接的特例,连接条件是列名相同。 - 外连接:允许有空值的连接,包括左外连接、右外连接和全外连接。 ...

    mysql索引、触发器、事务、存储过程说明

    - **InnoDB**:这是MySQL的默认存储引擎,它支持事务处理、外键约束以及行级锁定。尽管批量插入速度较慢,但对于需要高度一致性的应用来说,InnoDB通常是更好的选择。 #### 事务 事务是指一系列的操作被视为一个...

    数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较(实例说明)

    5. 在有主外键约束的环境中,只能使用Delete,因为Truncate不记录在日志中,不能激活触发器以维护约束。 使用场合: - 如果需要完全删除表,包括其依赖,选择Drop。 - 如果只想清空表,但保留表结构,使用Truncate...

    SQL数据库练习打印.pdf

    7. **过程调用**:过程是可重复使用的SQL代码块,可以带有参数。问题8展示了如何使用参数调用过程。 8. **LIKE运算符**:在查询中,`LIKE`运算符用于模糊匹配,例如在问题9中查找与"清华"相关的毕业学校。 9. **...

    SQL试题(带答案的经典试题)

    `FOREIGN KEY`用于创建外键约束,实现表间关系;`UNIQUE`约束确保字段值唯一。 4. **主索引**:主索引是表中的一个特殊索引,确保字段值的唯一性,不允许有重复值。 5. **视图**:视图是虚拟表,基于一个或多个表...

    MySQL参考手册chm格式

    2. **存储引擎优化**:InnoDB存储引擎得到了显著加强,支持外键约束、事务处理和行级锁定,提高了并发性能。MyISAM引擎虽然不支持事务,但在读取速度上有优势,适用于读密集型应用。 3. **触发器和存储过程**:...

    1数据库设计规范.doc

    - 主外键设计时,创建外键约束,确保键的唯一性,避免复合键,外键应关联唯一键。 **第3章 使用规范** 3.1 **综合** - 只有数据库管理员能修改数据库结构,其他人需提交修改申请。 - 数据访问层推荐使用存储过程,...

    数据库和ado知识

    主外键关系的概念以及使用 数据库的主要类型 数据库的主要数据类型 使用SQL语句来创建数据库和表 约束分类 top的使用 Distinct的使用(去除重复数) 聚合函数 聚合函数注意事项 between and 和 in 的使用 like, not ...

    sqlserver一些东西

    - **引用完整性**:通过外键约束来实现。 - **自定义完整性**:通过规则、存储过程和触发器等来实现。 #### 十、其他注意事项 - SQL Server 使用 Unicode 字符集,这意味着每个字符(包括汉字)占用一个字节。 - ...

    create_data.rar_Create_Table

    为了确保数据的一致性和完整性,还可以在CREATE TABLE语句中定义各种约束,如非空约束(NOT NULL)、唯一约束(UNIQUE)、外键约束(FOREIGN KEY)等。此外,可以使用触发器(TRIGGER)、存储过程(STORED PROCEDURE...

    数据库管理系统:ch04 Advanced SQL.ppt

    2. `time`:表示一天中的时间,包含小时、分钟和秒,如`time '09:00:30'`或带有毫秒的`time '09:00:30.75'`。 3. `timestamp`:结合日期和时间,如`timestamp '2005-7-27 09:00:30.75'`。 4. `interval`:表示时间...

    精通sql结构化查询语句

    1.3 数据模型 1.3.1 关系数据库模型 1.3.2 数据模型的构成 1.3.3 常见的数据模型 1.4 关系型数据库 1.4.1 关系型数据库的定义 1.4.2 关系型数据库与表 1.4.3 主键与外键 1.4.4 字段约束 1.4.5 数据的完整性 1.4.6 ...

    SQL Server 期末考题2

    5. **主索引**:主索引确保字段中输入值的唯一性,不允许有重复值,从而保证数据的完整性。 6. **视图**:视图是一种虚拟表,不实际存储数据,而是基于查询结果。视图可以由其他视图派生,并且可以用于提供数据的...

    数据库原理和应用试题(卷)--含答案解析.doc

    - 外键约束用于维护参照完整性,而非实体完整性。 - 检查约束和默认约束可以用来确保数据的正确性,但它们服务于不同目的。 8. **存储过程和触发器**: - 存储过程可以带参数,增强其灵活性,可以是系统定义或...

    SQL-Server-2000模拟试题-(二)--.doc

    - **外键约束:**外键约束可以为空值,但必须引用另一个表中的主键值。 - **默认键约束:**默认键约束可以为空值,用于指定默认值。 - **UNIQUE约束:**UNIQUE约束不允许有重复值,但可以为空值。 #### 21. 其他...

    数据库原理与应用试题含答案.docx

    数据完整性包括实体完整性、参照完整性和用户定义的完整性,外键约束确保参照完整性。存储过程是预编译的SQL代码集合,可以带参数,增强灵活性。触发器在满足特定条件时自动执行,如数据更改。数据库的平安管理涉及...

    数据库课程设计任务书1

    - **物理模型图**:画出数据库的物理模型图,展示实际存储的表结构,包括主码、外码、索引和约束等细节。 - **数据库部署**:将逻辑模型在选定的DBMS(如SQL Server 2008/2012)中实现,创建查询视图、存储过程和...

    大数据库原理及应用期末考试复习题.doc

    关系模型提供了三种完整性规则:实体完整性(确保每个实体的主键都是唯一的),参照完整性(确保引用完整性,即外键关联到存在的主键),以及用户自定义完整性(允许用户定义特定的约束)。此外,还有四种完整性类型...

Global site tag (gtag.js) - Google Analytics