3¡£Óû§²»ÄÜÖ±½Ó²Ù×÷2¸ö±í
4¡£delete´¥·¢Æ÷½«É¾³ýµÄÄÚÈÝ·ÅÔÚdeleted±íÖС£ insert´¥·¢Æ÷½«Ìí¼ÓµÄÄÚÈÝ´æÔÚinserted±íÖС£
update´¥·¢Æ÷½«Ì滻ǰµÄÄÚÈÝ·ÅÔÚdeleted±íÖУ¬½«Ìæ»»ºóµÄÐÂÄÚÈÝ·ÅÔÚinserted±íÖС£ ´´½¨´¥·¢Æ÷£º
CREATE TRIGGER ´¥·¢Æ÷Ãû ON ±íÃû/ÊÓͼÃû FOR ´¥·¢Æ÷ÀàÐÍ AS
??T-SQLÓï¾ä ÀýÈ磺
/*Èç¹û±»É¾³ýµÄѧÉúÓп¼ÊԳɼ¨µÄ»°£¬¾Í²»ÔÊÐíɾ³ýÕâ¸öѧÉú*/ create trigger t_stu on tbl_stu for delete as begin
declare @id int
select @id = stuid from deleted
if exists(select * from tbl_cj where stuid = @id) begin
print 'ѧÉúÓгɼ¨,²»¿Éɾ³ý!!' rollback transaction end
end
delete tbl_stu where stuid = 1007¡ªµ±É¾³ýʱ£¬¿´ÏûÏ¢¿òÌáʾ ɾ³ý´¥·¢Æ÷£ºdrop trigger ´¥·¢Æ÷Ãû ÀýÈ磺drop trigger t_stu
Ð޸Ĵ¥·¢Æ÷£º½«´´½¨´¥·¢Æ÷µÄcreate¹Ø¼ü×Ö¸ü»»³Éalter
´æ´¢¹ý³Ì
´æ´¢¹ý³Ì£ºÊÇ´æ´¢ÔÚsqlserver·þÎñÆ÷ÖеÄÒ»×éÔ¤±àÒë¹ýµÄt-sqlÓï¾ä£¬µ±µÚÒ»´Îµ÷Óú󣬾ÍפÁôÔÚÄÚ´æÖУ¬ÒÔºóµ÷ÓÃʱ²»±ØÔÙ½øÐбàÒë¡£ÓŵãÔÚÓÚÒ»´Î±àд£¬¶à´Îµ÷Óᣵ÷Óùý³ÌÔÚ·þÎñÆ÷¶ËÖ´ÐУ¬Ö´ÐÐËٶȿ졣 ´æ´¢¹ý³Ì·ÖΪ£ºÏµÍ³´æ´¢¹ý³Ì£¬±¾µØ´æ´¢¹ý³Ì¡£ ´æ´¢¹ý³ÌÓï·¨£º
create procedure ´æ´¢¹ý³ÌÃû @²ÎÊý ²ÎÊýÀàÐÍ as
ÈÎÒâÊýÁ¿µÄT-SQLÓï¾ä ÀýÈ磺
create procedure stu_name @stuname char(10) as
select * from stu
µ÷Óô洢¹ý³Ì exec ´æ´¢¹ý³ÌÃû ²ÎÊý ÀýÈ磺exec stu_name 'aa'
ÊÂÎñ
--ÏÔʾÊÂÎñ Create table aaa (
Aid int , Aname char(10),
Asex char(2) check(asex in (¡®m¡¯,¡¯n¡¯)) )
Set xact_abort on Begin transaction
Intsert into aaa values(101,¡¯aa¡¯,¡¯n¡¯) Intsert into aaa values(102,¡¯bb¡¯,¡¯m¡¯) Intsert into aaa values(103,¡¯cc¡¯,¡¯n¡¯) Intsert into aaa values(104,¡¯dd¡¯,¡¯a¡¯) Intsert into aaa values(105,¡¯ee¡¯,¡¯m¡¯) If @@error = 0 Commit Else Rollback Go
Select * from aaa Drop table aaa
--ÒþÐÔÊÂÎñ Set xact_abort on
Set implicit_transactions on Create table aaa (
Aid int , Aname char(10),
Asex char(2) check(asex in (¡®m¡¯,¡¯n¡¯)) )
Intsert into aaa values(101,¡¯aa¡¯,¡¯n¡¯) Intsert into aaa values(102,¡¯bb¡¯,¡¯m¡¯) Intsert into aaa values(103,¡¯cc¡¯,¡¯n¡¯) Intsert into aaa values(104,¡¯dd¡¯,¡¯a¡¯) Intsert into aaa values(105,¡¯ee¡¯,¡¯m¡¯) Commit --ĬÈÏÌá½»ÊÂÎñ Create table aaa (
Aid int,
Aname char (10),
Asex char (2) check (asex in (¡®m¡¯,¡¯n¡¯))
)
Intsert into aaa values(101,¡¯aa¡¯,¡¯n¡¯) Intsert into aaa values(102,¡¯bb¡¯,¡¯m¡¯) Intsert into aaa values(103,¡¯cc¡¯,¡¯n¡¯) Intsert into aaa values(104,¡¯dd¡¯,¡¯a¡¯) Intsert into aaa values(105,¡¯ee¡¯,¡¯m¡¯)
/*------------------------------------------------------------------- Commit :Ìá½»ÊÂÎñÖеÄÒ»ÇвÙ×÷£¬Ê¹µÃÊÂÎñ¶ÔÊý¾Ý¿âµÄÐÞ¸ÄÓÐЧ Rollback£º»Ø¹öÊÂÎñÖеÄÒ»ÇвÙ×÷£¬Ê¹µÃÊÂÎñ¶ÔÊý¾Ý¿âµÄ²Ù×÷ÎÞЧ
--------------- --------------------------------------------------- ÊÂÎñ¿ØÖÆÓï¾ä 1£®
ÉèÖÃÒþÐÔÊÂÎñģʽ
set implicit_transactions onÆô¶¯ÒþÐÔÊÂÎñģʽ set implicit_transactions off ¹Ø±ÕÒþÐÔÊÂÎñģʽ
1£© 2£© 2£®
ÉèÖÃ×Ô¶¯»Ø¹öģʽ
set xact_abort on µ±ÊÂÎñÖÐÈÎÒâÒ»ÌõÓï¾ä²úÉúÔËÐÐʱ´íÎó£¬Õû¸öÊÂÎォ
1£©
ÖÐÖ¹£¬²¢ÕûÌ廨¹ö¡£ 2£©
set xact_abort off µ±ÊÂÎñÖÐÓï¾ä²úÉúÔËÐÐʱ´íÎ󣬽«ÖÐÖ¹±¾ÌõÓï¾ä²¢
Çһعö±¾ÌõÓï¾ä¡£
×¢Ò⣺set xact_abort µÄÉèÖÃÊÇÔÚÖ´ÐлòÔËÐÐʱÉèÖ㬶ø²»ÊÇÔÚ·ÖÎöʱÉèÖá£