SQL ´¥·¢Æ÷Ïê½â
´¥·¢³ÌÐò£¨trigger£©ÊÇÒ»ÖÖÌØÊâÐÍ̬µÄÔ¤´æ³ÌÐò£¬µ±ÄúʹÓÃInsert¡¢Update»òDeleteÃüÁîÀ´ÐÞ¸Ä×ÊÁÏÁÐʱ£¬Microsoft SQL Server»á×Ô¶¯Ö´ÐÐÄúËù¶¨ÒåµÄ´¥·¢³ÌÐò¡£
´¥·¢³ÌÐò£¨trigger£© ÊÇÒ»ÖÖÌØÊâµÄÔ¤´æ³ÌÐò£¬Ö´ÐÐÌØ¶¨µÄ³ÂÊöʽ£¨Update¡¢Insert »ò Delete£©¾Í¿ÉÒÔ啟¶¯´¥·¢³ÌÐò¡£´¥·¢³ÌÐòÓëÆäËûÔ¤´æ³ÌÐòÏàͬ£¬¿ÉÒÔÊÇÓɼòµ¥£¬Òà»òÊǸ´Ô T-SQL ³ÂÊöʽ×é³É£»ÖÁì¶ÓëÆäËûÔ¤´æ³ÌÐò²»Í¬µÄµØ·½£¬ÔòÔÚì¶µ±Ö¸¶¨µÄ×ÊÁϱ»Ð޸쬴¥·¢³ÌÐò¼´×Ô¶¯Ö´ÐУ¬ÎÞ·¨ÒÀÃû³ÆÒÔÊÖ¶¯Ö´ÐС£´¥·¢³ÌÐòÖ´ÐÐʱ£¬³Æ為´¥¶¯£¨fire£©¡£´¥·¢³ÌÐòË佨Á¢ÔÚÏÖÓеÄ×ÊÁÏ¿â×ÊÁϱíÖУ¬µ«Ëü¿ÉÒÔ´æÈ¡ÆäËû×ÊÁÏ¿âµÄ×ÊÁϱíºÍÎï¼þ¡£´¥·¢³ÌÐò²»Äܽ¨Á¢ÔÚÁÙʱµÄ×ÊÁϱí»òÁÙʱµÄϵͳ×ÊÁϱíÉÏ£¬Ö»Äܽ¨Á¢ÔÚʹÓÃÕß×Ô¶©×ÊÁϱí»ò×Ô¶©µÄ¼ìÊÓ±íÖС£Ö´Ðд¥·¢³ÌÐòËùÔÚµÄ×ÊÁϱí»ò¼ìÊÓ±í£¬³Æ為´¥·¢³ÌÐò×ÊÁÏ±í£¨trigger table£©¡£
´¥·¢³ÌÐòÓÐÎåÖÖÀàÐÍ£ºUpdate¡¢Insert¡¢Delete¡¢INSTEAD OF ºÍ AFTER¡£ÓÐÁË´¥·¢³ÌÐò£¬Ö»ÒªÄú¶Ô¸Ã±í¸ñ¸üС¢²åÈë»òɾ³ýʱ£¬¾Í»á´¥¶¯¶ÔÓ¦µÄ Update¡¢Insert »ò Delete ´¥·¢³ÌÐò¡£INSTEAD OF ºÍ AFTER ÊÇ SQL 2000 ÐÂÔöµÄÁ½Ïî´¥·¢³ÌÐò£¬Instead ofµÄÔÒåÊÇ¡¸È¡´ú¡¹£¬INSTEAD OF´¥·¢³ÌÐò»áÈ¡´ú²åÈë¡¢¸üкÍɾ³ý²Ù×÷¶øÖ´ÐС£AFTER ´¥·¢³ÌÐò»áÔÚ´¥·¢¶¯×÷Ö®ºóÔÙ´¥¶¯£¬¿ÉÊÓ為¿ØÖÆ´¥·¢³ÌÐò啟¶¯Ê±¼äµÄ»úÖÆ¡£
¶Ô×ÊÁϵĸüС¢²åÈ뼰ɾ³ý±»ÊÓ為×ÊÁÏÐÞ¸Äʼþ¡£Äú¿ÉÒÔÉè¼Æµ±Ò»Ïî»ò¶àÏîÐÞ¸Äʼþ產Éúʱ£¬¼´´¥¶¯´¥·¢³ÌÐò¡£ÀýÈ磬µ±Ö´ÐÐ Update »ò Insert ³ÂÊöʽʱ¼´´¥¶¯´¥·¢³ÌÐò¡£ÕâÖÖÀàÐ͵Ĵ¥·¢³ÌÐò³Æ為 Update/Insert ´¥·¢³ÌÐò¡£ÄúÒ²¿ÉÒÔ½¨Á¢ÈκÎÒ»ÏîÐÞ¸Äʼþ產Éúʱ£¬Ö´ÐÐÏà¶ÔµÄ Update/Insert/Delete ´¥·¢³ÌÐò¡£
ÏÂÃæÊǹØì¶´¥·¢³ÌÐòµÄһЩÆäËû¹æ¶¨£º
´¥·¢³ÌÐòÖ»ÔÚ´¥·¢ËüµÄ³ÂÊöʽÍê³ÉºóÖ´ÐС£¾ÙÀýÀ´Ëµ£¬Èç¹û Update ³ÂÊöʽ³É¹¦£¬Update ´¥·¢³ÌÐò²Å»á±»´¥¶¯¡£
¡¡
Èç¹û³ÂÊöʽÔÚ×ÊÁϱíÖÐÖ´ÐÐÎ¥·´Ìõ¼þÔ¼Êø»òÒýÆð´íÎ󣬴¥·¢³ÌÐò²»»á´¥¶¯¡£
¡¡
´¥·¢³ÌÐòÊÓ為µ¥Ò»½»Ò×ÖеÄÒ»²¿·Ý£¬Òò´Ë¿ÉÒÔÓÉÔ´¥·¢³ÌÐò復Ô½»Ò×£¬Èç¹ûÔÚ½»Ò×¹ý³ÌÖÐÕì²âµ½ÑÏÖØµÄ´íÎó£¨ÈçʹÓÃÕßÖжÏÁ¬Ïߣ©£¬Ôò»á×Ô¶¯復ÔÕû¸ö½»Òס£
Ïà¹ØÎĵµ£º
֮ǰʹÓÃPLSQL£¬¶¼ÊÇÒÔдÈëÄÚÈÝΪÖ÷£¬Ð´ÈëÖÐÎÄÄÚÈÝżÓÐÂÒÂ룬µ«ÊÇÖ»ÔÚÏÔʾÉϲ¢Î´Ó°Ïì´æÈ¡£¬ËùÒÔûÓÐÔÚÒâ¡£
½ñÌìÔÚÐÞ¸ÄÒ»¸öÊÓͼʱ£¬ÐèÒª½«ÐÞ¸ÄÄÚÈݼǼÏÂÀ´£¬so,Ïëд¸öÐ޸ļǼ£¬¾Í°ÑÊÓͼÄÚÈÝ¿½±´Á˳öÏÖ£¬·¢ÏÖ¿½±´³öÏÖµÄÖÐÎÄÄÚÈݳöÏÖÂÒÂë¡£
²¢Î´ÍêÈ«ÔÚÒ⣬ÒÔΪֻҪÔÑù·Å»Øplsql¾Í»áºÃµÄ£¬µ«ÊDZ£´æÔÙÈ¡³ö·Åµ½plsqlÖз¢ÏÖÈÔ ......
ºÍÊý¾Ý¿â´ò½»µÀҪƵ·±µØÓõ½SQLÓï¾ä£¬³ý·ÇÄãÊÇÈ«²¿Óÿؼþ°ó¶¨µÄ·½Ê½£¬µ«²ÉÓÿؼþ°ó¶¨µÄ·½Ê½´æÔÚ×ÅÁé»îÐԲЧÂʵ͡¢¹¦ÄÜÈõµÈµÈȱµã¡£Òò´Ë£¬´ó¶àÊýµÄ³ÌÐòÔ±¼«ÉÙ»ò½ÏÉÙÓÃÕâÖְ󶨵ķ½Ê½¡£¶ø²ÉÓ÷ǰ󶨷½Ê½Ê±Ðí¶à³ÌÐòÔ±´ó¶¼ºöÂÔÁ˶Ե¥ÒýºÅµÄÌØÊâ´¦Àí£¬Ò»µ©SQLÓï¾äµÄ²éѯÌõ¼þµÄ±äÁ¿Óе¥ÒýºÅ³öÏÖ£¬Êý¾Ý¿âÒýÇæ¾Í»á±¨´íÖ¸³öSQLÓ ......
×Ó±í²éѯ£¬¸¸±íÒ»¶¨Òª¼Ó±ðÃû£¬·ñÔòÊý¾Ý»áÓÐÎÊÌ⣬²»±¨±àÒë´í
select * from table1 a where exist(select 1 from table2 where a.id=b.id)
´æ´¢¹ý³Ì½á¹û¼¯²åÈëµ½ÏÖÓбí
insert into table1 exec procname args
ÁªºÏÒÑÓÐ±í£¬½ô¸úÔÚºóÃæ£¬¶Ô»ã×ܺÜÓÐÓÃ
select a from table1 union all select 'ºÏ¼Æ'
½á¹û¼¯ÀïµÄij ......
ÕªÒª
¶ÔÓÚSQL ServerÖеÄÔ¼Êø£¬Ïë±Ø´ó¼Ò²¢²»ÊǺÜİÉú¡£µ«ÊÇÔ¼ÊøÖÐÕæÕýµÄÄÚºÊÇʲô£¬²¢²»ÊǺܶàÈ˶¼ºÜÇå³þµÄ¡£±¾ÎÄÒÔÏêϸµÄÎÄ×ÖÀ´½éÉÜÁËʲôÊÇÔ¼Êø£¬ÒÔ¼°ÈçºÎÔÚÊý¾Ý¿â±à³ÌÖÐÓ¦ÓúÍʹÓÃÕâÐ©Ô¼Êø£¬À´´ïµ½¸üºÃµÄ±à³ÌЧ¹û¡££¨±¾ÎIJ¿·ÖÄÚÈݲο¼ÁËSQL ServerÁª»úÊֲᣩ
ÄÚÈÝ
Êý¾ÝÍêÕûÐÔ·ÖÀà
ʵÌåÍêÕûÐÔ
&nb ......