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 0000000000000000000000000000000000000000..48f9f83df2cb1ddd28d5e4aab9828ca655bcd6de --- /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)假设有部门表和员工表,在添加员工的时候,该员工的部门编号如果在部门表中找不到,则自动添加部门信息,部门名称为"新部门"。 +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/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 0000000000000000000000000000000000000000..d91296c60dfde1c546bde9966b03d4c60494f983 --- /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瑙﹀彂鍣ㄧ殑浣跨敤鍙婅娉 + +##### 瀹氫箟锛 浣曚负瑙﹀彂鍣紵鍦⊿QL Server閲岄潰涔熷氨鏄鏌愪竴涓〃鐨勪竴瀹氱殑鎿嶄綔锛岃Е鍙戞煇绉嶆潯浠讹紝浠庤屾墽琛岀殑涓娈电▼搴忋傝Е鍙戝櫒鏄竴涓壒娈婄殑瀛樺偍杩囩▼銆 + +甯歌鐨勮Е鍙戝櫒鏈変笁绉岲ML瑙﹀彂鍣 锛 澧炲垹鏀 + +after瑙﹀彂鍣紙 澧炲垹鏀 涔嬪悗鎵ц鐨 锛 + +after瑙﹀彂鍣ㄤ富瑕佺敤浜庯紙insert锛寀pdate锛宒elete锛 + +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.鎻掑叆鎿嶄綔锛圛nsert锛 +inserted 琛ㄧず鎻掑叆鍚庣殑鏁版嵁 + +2.鍒犻櫎鎿嶄綔锛圖elete锛 +deleted 琛ㄧず鍒犻櫎鍚庣殑鏁版嵁 + +3.鏇存柊鎿嶄綔锛圲pdate锛 + +update 娌℃湁updated 鎵浠ョ敤inserted琛ㄧず鏂版暟鎹紝deleted琛ㄧず鏃ф暟鎹 + +***\*inserted 琛╘****鏈夋暟鎹紙鏂版暟鎹級锛***\*deleted 琛╘****鏈夋暟鎹紙鏃ф暟鎹級 +