SQLServerÁî×ܽá ÏÂÔØ±¾ÎÄ

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 µÄÉèÖÃÊÇÔÚÖ´ÐлòÔËÐÐʱÉèÖ㬶ø²»ÊÇÔÚ·ÖÎöʱÉèÖá£