From 44249e0e8567b32d50a0923cc57c86f83f0f02a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E9=9B=84?= <3218770186@qq.com> Date: Tue, 11 Oct 2022 14:39:59 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=B0=E5=BB=BA=2010.10?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "30\351\273\204\351\233\204/10.10/.keep" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "30\351\273\204\351\233\204/10.10/.keep" diff --git "a/30\351\273\204\351\233\204/10.10/.keep" "b/30\351\273\204\351\233\204/10.10/.keep" new file mode 100644 index 0000000..e69de29 -- Gitee From 022e5431c84e6f4695d1aa6ef255f155a8711507 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E9=9B=84?= <3218770186@qq.com> Date: Tue, 11 Oct 2022 14:40:29 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=E9=BB=84=E9=9B=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 黄雄 <3218770186@qq.com> --- .../10.10/SQLQuery1.sql" | 32 +++++++++++++++++ ...50\345\217\212\350\257\255\346\263\225.md" | 36 +++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 "30\351\273\204\351\233\204/10.10/SQLQuery1.sql" create mode 100644 "30\351\273\204\351\233\204/10.10/SQL\350\247\246\345\217\221\345\231\250\347\232\204\344\275\277\347\224\250\345\217\212\350\257\255\346\263\225.md" diff --git "a/30\351\273\204\351\233\204/10.10/SQLQuery1.sql" "b/30\351\273\204\351\233\204/10.10/SQLQuery1.sql" new file mode 100644 index 0000000..7c52f6b --- /dev/null +++ "b/30\351\273\204\351\233\204/10.10/SQLQuery1.sql" @@ -0,0 +1,32 @@ +--(1)假设有部门表和员工表,在添加员工的时候,该员工的部门编号如果在部门表中找不到,则自动添加部门信息,部门名称为"新部门"。 +select * from Department +select * from People +create trigger tri_insert +on people for insert +as +if not exists(select*from Department where DepartmentId=(select DepartmentId from inserted ) ) + insert into Department(DepartmentId,DepartmentName) values((select DepartmentId from inserted),'新部门') + + insert into People(DepartmentId,PeopleName,PeopleSex,Peoplesalary) values ('005','赵云','男','3000.00') + drop trigger tri_insert + + + + +--(2)触发器实现,删除一个部门的时候将部门下所有员工全部删除。 +create trigger tri_out +on Department for delete +as + delete from People where DepartmentId=(select DepartmentId from inserted ) +delete from Department where DepartmentId='004' +--**(3)创建一个触发器,删除一个部门的时候判断该部门下是否有员工,有则不删除,没有则删除。** +create +--(4)修改一个部门编号之后,将该部门下所有员工的部门编号同步进行修改 + +create trigger tri_updata +on Department for update +as + update Department set DepartmentId=(select DepartmentId from inserted) + where DepartmentId=(select DepartmentId from inserted) + +update Department set DepartmentId = '005'where DepartmentId ='001' \ No newline at end of file diff --git "a/30\351\273\204\351\233\204/10.10/SQL\350\247\246\345\217\221\345\231\250\347\232\204\344\275\277\347\224\250\345\217\212\350\257\255\346\263\225.md" "b/30\351\273\204\351\233\204/10.10/SQL\350\247\246\345\217\221\345\231\250\347\232\204\344\275\277\347\224\250\345\217\212\350\257\255\346\263\225.md" new file mode 100644 index 0000000..bd932c2 --- /dev/null +++ "b/30\351\273\204\351\233\204/10.10/SQL\350\247\246\345\217\221\345\231\250\347\232\204\344\275\277\347\224\250\345\217\212\350\257\255\346\263\225.md" @@ -0,0 +1,36 @@ +SQL触发器的使用及语法 +定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 +常见的触发器有三种DML触发器 : 增删改 + +after触发器( 增删改 之后执行的 ) + +after触发器主要用于(insert,update,delete) + +instead of 触发器 (增删改 之前检查的) + +触发器( trigger )是作为对数据库修改的连带效果而由系统自动执行的一条语句。它是一种特殊的存储过程。也是一个事务(可以回滚) + +操作: +CREATE TRIGGER <触发器名称> + +ON table_name +FOR [DELETE, INSERT, UPDATE] + +AS + + T-SQL语句 (inserted,deleted,update没有upadated) + +GO +--WITH ENCRYPTION表示加密触发器定义的SQL文本 + +--DELETE, INSERT, UPDATE指定触发器的类型 +1.插入操作(Insert) inserted 表示插入后的数据 + +2.删除操作(Delete) deleted 表示删除后的数据 + +3.更新操作(Update) + +update 没有updated 所以用inserted表示新数据,deleted表示旧数据 + +****inserted 表*有数据(新数据),*deleted 表****有数据(旧数据) + -- Gitee