diff --git "a/36\351\273\204\345\257\214\350\264\265/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271 (2)/10-10\344\275\234\344\270\232/10-10-\350\247\246\345\217\221\345\231\250\344\275\234\344\270\232/SQLQuery2.sql" "b/36\351\273\204\345\257\214\350\264\265/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271 (2)/10-10\344\275\234\344\270\232/10-10-\350\247\246\345\217\221\345\231\250\344\275\234\344\270\232/SQLQuery2.sql" new file mode 100644 index 0000000000000000000000000000000000000000..191d85a2f17dc085afa3c2cd8521a2c4647fcc04 --- /dev/null +++ "b/36\351\273\204\345\257\214\350\264\265/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271 (2)/10-10\344\275\234\344\270\232/10-10-\350\247\246\345\217\221\345\231\250\344\275\234\344\270\232/SQLQuery2.sql" @@ -0,0 +1,35 @@ +--(1)假设有部门表和员工表,在添加员工的时候,该员工的部门编号如果在部门表中找不到,则自动添加部门信息,部门名称为"新部门"。 +go +create trigger tri_insertPeople on People after insert +as +if not exists(select * from Department where DepartmentId =(select DepartmentId from inserted) + begin + insert into Department(DepartmentId,DepartmentName) + values((select DepartmentId from inserted),'新部门') + end +go + +--测试 +insert People(DepartmentId,PeopleName,PeopleSex,PeoplePhone) +values('010','张三','男','12345678910') + +--(2)触发器实现,删除一个部门的时候将部门下所有员工全部删除。 +create trigger tri_DeleteDept on Department after delete +as +delete from people where DepartmentId = (select DepartmentId from deleted) +go + +--测试 +delete from Department where DepartmentId='' + +--**(3)创建一个触发器,删除一个部门的时候判断该部门下是否有员工,有则不删除,没有则删除。** + +--(4)修改一个部门编号之后,将该部门下所有员工的部门编号同步进行修改。 +create trigger tri_UpdateDept on Department after update +as +update People set DepartmentId = (select DepartmentId from inserted) +where DepartmentId = (select DepartmentId from deleted) +go + +--测试 +update Department set DepartmentId = '002'where DepartmentId = '001' \ No newline at end of file diff --git "a/36\351\273\204\345\257\214\350\264\265/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271 (2)/10-10\344\275\234\344\270\232/10-100\350\247\246\345\217\221\345\231\250\347\254\224\350\256\260.md" "b/36\351\273\204\345\257\214\350\264\265/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271 (2)/10-10\344\275\234\344\270\232/10-100\350\247\246\345\217\221\345\231\250\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..f42badcb0ed43fe06309291c4dbad53ab0d6d963 --- /dev/null +++ "b/36\351\273\204\345\257\214\350\264\265/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271 (2)/10-10\344\275\234\344\270\232/10-100\350\247\246\345\217\221\345\231\250\347\254\224\350\256\260.md" @@ -0,0 +1,26 @@ +##瑙﹀彂鍣紙trigger锛 + + 浠涔堟槸瑙﹀彂鍣細 insert --銆 涓绯诲垪闅忕潃鎻掑叆鎿嶄綔鑷姩鎵ц鐨剆ql璇彞闆嗗悎 + + 瑙﹀彂鍣紙 trigger 锛夋槸浣滀负瀵规暟鎹簱淇敼鐨勮繛甯︽晥鏋滆岀敱绯荤粺鑷姩鎵ц鐨勪竴鏉¤鍙ャ傚畠鏄竴绉嶇壒娈婄殑瀛樺偍杩囩▼銆備篃鏄竴涓簨鍔★紙鍙互鍥炴粴锛夈備负浜嗗畾涔変竴涓猍瑙﹀彂鍣╙锛屾垜浠繀椤伙細 + +鎸囨槑浠涔堟椂鍊欐墽琛岃Е鍙戝櫒銆傝繖琚媶鍒嗕负寮曡捣瑙﹀彂鍣ㄨ妫娴嬬殑涓涓簨浠跺拰瑙﹀彂鍣ㄧ户缁墽琛屾墍蹇呴』婊¤冻鐨勪竴涓潯浠躲 +- 鎸囨槑褰撹Е鍙戝櫒鎵ц鏃舵墍閲囧彇鐨勫姩浣溿 + +##瑙﹀彂鍣ㄧ殑鍒嗙被 +1.DML瑙﹀彂鍣 +DML瑙﹀彂鍣細澧炲垹鏀 + +2.after瑙﹀彂鍣 +after瑙﹀彂鍣細澧炰笂鏀逛箣鍚庢墽琛岀殑 涓昏鐢ㄤ簬insert锛寀pdate锛宒elete + +3.instead of瑙﹀彂鍣 +instead of瑙﹀彂鍣細澧炲垹鏀逛箣鍓嶆鏌ョ殑 + +鎬荤粨涓嬫潵鍒嗕负涓夋锛 +1.鎻掑叆鎿嶄綔 +***\*inserted 琛╘****鏈夋暟鎹紝***\*deleted 琛╘****鏃犳暟鎹 +2.鍒犻櫎鎿嶄綔 +***\*inserted 琛╘****鏃犳暟鎹紝***\*deleted 琛╘****鏈夋暟鎹 +3.鏇存柊鎿嶄綔 +***\*inserted 琛╘****鏈夋暟鎹紙鏂版暟鎹級锛***\*deleted 琛╘****鏈夋暟鎹紙鏃ф暟鎹級 \ No newline at end of file