From 5935a7ff37da8016ec640c2ef6244fef90e37c7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=96=87=E9=BE=99?= <2717752887@qq.com> Date: Tue, 11 Oct 2022 09:12:16 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=E7=AC=AC=E5=8D=81=E4=BA=8C=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 吴文龙 <2717752887@qq.com> --- .../\344\275\234\344\270\232/SQLQuery1.sql" | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 "17\345\220\264\346\226\207\351\276\231/\344\275\234\344\270\232/SQLQuery1.sql" diff --git "a/17\345\220\264\346\226\207\351\276\231/\344\275\234\344\270\232/SQLQuery1.sql" "b/17\345\220\264\346\226\207\351\276\231/\344\275\234\344\270\232/SQLQuery1.sql" new file mode 100644 index 0000000..48f9f83 --- /dev/null +++ "b/17\345\220\264\346\226\207\351\276\231/\344\275\234\344\270\232/SQLQuery1.sql" @@ -0,0 +1,33 @@ +--1вűԱԱʱ򣬸ԱIJűڲűҲԶӲϢΪ"²" +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޸һű֮󣬽òԱIJűͬ޸ + +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 -- Gitee From 3ae37d4e3190ff93e9e073829af4f40d1e810902 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=96=87=E9=BE=99?= <2717752887@qq.com> Date: Tue, 11 Oct 2022 09:12:58 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=E7=AC=AC=E5=8D=81=E4=BA=8C=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 吴文龙 <2717752887@qq.com> --- ...50\345\217\212\350\257\255\346\263\225.md" | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 "17\345\220\264\346\226\207\351\276\231/\347\254\224\350\256\260/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/17\345\220\264\346\226\207\351\276\231/\347\254\224\350\256\260/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/17\345\220\264\346\226\207\351\276\231/\347\254\224\350\256\260/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..d91296c --- /dev/null +++ "b/17\345\220\264\346\226\207\351\276\231/\347\254\224\350\256\260/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,48 @@ +### SQL触发器的使用及语法 + +##### 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 + +常见的触发器有三种DML触发器 : 增删改 + +after触发器( 增删改 之后执行的 ) + +after触发器主要用于(insert,update,delete) + +instead of 触发器 (增删改 之前检查的) + +##### + + **触发器**( trigger )是作为**对数据库修改的连带效果**而**由系统自动执行**的一条语句。它是一种特殊的**存储过程**。也是一个**事务**(可以回滚) + +##### 操作: + +```sql +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