From f36c8c5b38badca0d240d86829c6fa533b4e7434 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9C=E6=9D=8E=E6=B6=9B=E2=80=9D?= <“3014619898@qq.com”> Date: Wed, 28 Sep 2022 12:39:45 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=88=E7=83=BD=E6=9D=B0=E5=BC=80=E5=A7=8B?= =?UTF-8?q?=E6=98=BE=E6=91=86=E9=B8=A1=E7=88=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...75\346\225\260\344\275\234\344\270\232.md" | 0 ...21\345\231\250\344\275\234\344\270\232.md" | 67 +++++++++++++++++++ ...26\350\247\246\345\217\221\345\231\250.md" | 2 +- 3 files changed, 68 insertions(+), 1 deletion(-) rename "45\346\235\216\346\266\233/\344\275\234\344\270\232/\345\207\275\346\225\260\344\275\234\344\270\232.md" => "45\346\235\216\346\266\233/\344\275\234\344\270\232/20220921\345\207\275\346\225\260\344\275\234\344\270\232.md" (100%) create mode 100644 "45\346\235\216\346\266\233/\344\275\234\344\270\232/20220927\350\247\246\345\217\221\345\231\250\344\275\234\344\270\232.md" diff --git "a/45\346\235\216\346\266\233/\344\275\234\344\270\232/\345\207\275\346\225\260\344\275\234\344\270\232.md" "b/45\346\235\216\346\266\233/\344\275\234\344\270\232/20220921\345\207\275\346\225\260\344\275\234\344\270\232.md" similarity index 100% rename from "45\346\235\216\346\266\233/\344\275\234\344\270\232/\345\207\275\346\225\260\344\275\234\344\270\232.md" rename to "45\346\235\216\346\266\233/\344\275\234\344\270\232/20220921\345\207\275\346\225\260\344\275\234\344\270\232.md" diff --git "a/45\346\235\216\346\266\233/\344\275\234\344\270\232/20220927\350\247\246\345\217\221\345\231\250\344\275\234\344\270\232.md" "b/45\346\235\216\346\266\233/\344\275\234\344\270\232/20220927\350\247\246\345\217\221\345\231\250\344\275\234\344\270\232.md" new file mode 100644 index 0000000..1eb73b2 --- /dev/null +++ "b/45\346\235\216\346\266\233/\344\275\234\344\270\232/20220927\350\247\246\345\217\221\345\231\250\344\275\234\344\270\232.md" @@ -0,0 +1,67 @@ +```sql + +select * from Department +select * from People + + +--(1)假设有部门表和员工表,在添加员工的时候,该员工的部门编号如果在部门表中找不到,则自动添加部门信息,部门名称为"新部门"。 +go +create trigger tri_d1 +on people after insert +as + + if (select DepartmentId from inserted ) not in(select DepartmentId from Department) + begin + declare @Id varchar(20) + set @Id=(select DepartmentId from inserted) + insert Department values(@Id,'新部门') + end + +go + +insert People values ('009','赵云','男','10000') + +--(2)触发器实现,删除一个部门的时候将部门下所有员工全部删除。 +go +create trigger tri_de +on department after delete +as + delete from People where DepartmentId=(select DepartmentId from deleted) +go + +delete from Department where DepartmentName='市场部' + + +--(3)创建一个触发器,删除一个部门的时候判断该部门下是否有员工,有则不删除,没有则删除。 +go +create trigger tri_d3 +on department after delete +as +if exists(select DepartmentId from People where DepartmentId in (select DepartmentId from deleted) ) + begin + rollback transaction + end + +go + +delete from Department where DepartmentName='人事部' +--(4)修改一个部门编号之后,将该部门下所有员工的部门编号同步进行修改 +go +create trigger tri_d4 +on department after update +as + declare @Id varchar(10)= (select DepartmentId from inserted) + declare @Id2 varchar(10)=(select DepartmentId from deleted) + + if update(DepartmentId) + begin + update People set DepartmentId=@Id from inserted + where People.DepartmentId=@Id2 + end + +go + + +update Department set DepartmentId='008' where DepartmentId='001' +``` + diff --git "a/45\346\235\216\346\266\233/\347\254\224\350\256\260/220926\350\247\246\345\217\221\345\231\250.md" "b/45\346\235\216\346\266\233/\347\254\224\350\256\260/220926\350\247\246\345\217\221\345\231\250.md" index 83c4c32..fd5e922 100644 --- "a/45\346\235\216\346\266\233/\347\254\224\350\256\260/220926\350\247\246\345\217\221\345\231\250.md" +++ "b/45\346\235\216\346\266\233/\347\254\224\350\256\260/220926\350\247\246\345\217\221\345\231\250.md" @@ -9,7 +9,7 @@ on table_name for each row --行级触发器 begin -​ tirgger_stmt; +​ trigger_stmt; end ``` -- Gitee