From 4f36d323d3d2621efaf2e167db54fb78478398c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=B1=E6=8C=AF=E5=B1=B1?= <2959232105@qq.com> Date: Wed, 28 Sep 2022 20:12:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...27\350\247\246\345\217\221\345\231\250.md" | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 "36\345\215\261\346\214\257\345\261\261/\344\275\234\344\270\232/9.27\350\247\246\345\217\221\345\231\250.md" diff --git "a/36\345\215\261\346\214\257\345\261\261/\344\275\234\344\270\232/9.27\350\247\246\345\217\221\345\231\250.md" "b/36\345\215\261\346\214\257\345\261\261/\344\275\234\344\270\232/9.27\350\247\246\345\217\221\345\231\250.md" new file mode 100644 index 0000000..6e55337 --- /dev/null +++ "b/36\345\215\261\346\214\257\345\261\261/\344\275\234\344\270\232/9.27\350\247\246\345\217\221\345\231\250.md" @@ -0,0 +1,76 @@ +--(1)假设有部门表和员工表,在添加员工的时候,该员工的部门编号如果在部门表中找不到,则自动添加部门信息,部门名称为"新部门"。 + +```sql +go +create trigger tri_insertssss +on people after insert +as +begin + if (select DepartmentId from inserted) not in( select DepartmentId from Department) + begin + insert into Department values('009','学校') + end +end + +insert into People values('009','吕布','女',1000) + +select * from Department +select * from People +``` + +--(2)触发器实现,删除一个部门的时候将部门下所有员工全部删除。 + +```sql +go +create trigger tri_deletes +on department after delete +as +begin + delete from People where DepartmentId=(select DepartmentId from deleted) +end + +delete from Department where DepartmentName='市场部' + +select * from Department +select * from People +``` + +--(3)创建一个触发器,删除一个部门的时候判断该部门下是否有员工,有则不删除,没有则删除。 + +```sql +go +create trigger tri_DeleteDeparyment +on department after delete +as +begin + if (select DepartmentId from deleted) in (select DepartmentId from Department) + begin + print'删除失败' + end + else + begin + delete from People where DepartmentId=(select DepartmentId from deleted ) + end +end + +drop trigger tri_DeleteDeparyment + +delete from Department where DepartmentName='市场部' +``` + +--(4)修改一个部门编号之后,将该部门下所有员工的部门编号同步进行修改 + +```sql +go +create trigger tri_update +on department after update +as +begin + update People set DepartmentId =(select DepartmentId from inserted) where DepartmentId=(select DepartmentId from deleted) +end + +update Department set DepartmentId ='110' where DepartmentId='001' + +select * from Department +select * from People +``` \ No newline at end of file -- Gitee