触发器级联删除与外键冲突?
如下两个表:
create table Company(
ComId char(10) not null,
Name char(50),
primary key(ComId)
);
create table Employee(
EmpId char(10) not null,
ComId char(10) not null,
primary key(EmpId)
foreign key(ComId) references Company(ComId)
);
如果我删除一个公司,那么属于本公司的职员也要删除,照书写了个触发器:
create trigger trDel on Company for delete
as
if @@rowcount=0
return
delete employee
from deleted d,employee e
where d.comid=e.comid
if @@error!=0
begin
raiserror("Error Encountered in trigger processing",16,1)
rollback tran
return
end
return
可是我根本无法删除Company和Employee的内容,SQL Server报告外键约束冲突:
DELETE statement conflicted with COLUMN REFERENCE constraint 'FK_ComId'...
也就是触发器根本没触发...
请大虾为小弟指点迷津!
相关推荐
第八章数据库完整性概念.doc
第八章数据库完整性概念.doc
MySQL添加外键时报错:1215 Cannot add the foreign key constraint的解决方法
大家都知道MySQL中经常会需要创建父子表之间的约束,这个约束是需要建立在主外键基础之上的,最近在MySQL添加外键时发现了一个报错:1215 Cannot add the foreign key constraint,所以这篇文章就给大家介绍了如何解决在创建主外键约束过程中碰到的这个问题。
实验五数据库编程:包括触发器、级联更新删除和系统函数等
一、实验目的及要求 1. 常见系统函数的使用方法。 2. 存储过程的使用方法。 3. 触发器的使用方法。 二、实验任务 1. 常见系统函数的操作。 2. 创建触发器。 3. 创建和调用存储过程。 三、操作要点 1.掌握T-SQL基本语法 2.建立对象时应该先排查在系统表中是否有相同名字的对象。 四、注意事项 1.调用存储过程时传递参数。 2.触发器不接受用户应用程序传递的参数。 五、实验学时:6学时 六、实验重点及难点 1. 函数的使用方法和技巧。 2. 创建和调用存储过程的语法。 3. 创建触发器的语法。 七、实验步骤 第一部分: 7.1 建库、表并建立索引 建立数据库Company并建立Employees,Department表,请设计各表,注意主码、外码。自行插入若干虚拟数据: 2)Department应包括的属性有:部门代码departmentID、部门名称 deptname、部门简介deptmemo。
数据库触发器详解[代码]
本文详细介绍了MySQL触发器的概念、创建、查看、删除及其优缺点。触发器是由INSERT、UPDATE、DELETE等事件触发的数据库操作,能够确保数据的完整性、记录操作日志以及对数据进行合法性检查。文章通过具体示例展示了触发器的创建语法和应用场景,如自动更新关联表数据。同时,也指出了触发器的缺点,如可读性差和因数据变更导致的潜在问题。最后,文章提醒在使用触发器时需注意外键约束等特殊情况,以避免意外错误。
有关触发器的文件和例子
有关触发器的一些注释,内容详尽,并且有例子和说明,对大家学习有关触发器一定有很大的帮助


