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 Server ÖÐÿ¸ö±äÁ¿¡¢²ÎÊý¡¢±í´ïʽµÈ¶¼ÓÐÊý¾ÝÀàÐÍ¡£ÏµÍ³ÌṩµÄÊý¾ÝÀàÐÍ·ÖΪ¼¸´óÀ࣬Èç±í4-2 Ëùʾ¡£
ÆäÖУ¬BIGINT¡¢ SQL_VARIANT ºÍTABLE ÊÇSQL Server 2000 ÖÐÐ ......
£¨×¢Òâoffice2007µÄͬѧ°Ñprivider='Microsoft.Jet.OLEDB.4.0'¸ÄΪ'Microsoft.ACE.OLEDB.12.0'¡£¡£offiec2003Óë2007µÄÌṩÆ÷ÊDz»Ò»ÑùµÄ¡£¡££©
SQLÓï¾äµ¼Èëµ¼³ö´óÈ«[ÊÕ¼¯]
/******* µ¼³öµ½excel
EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -
S"GNE ......
³õ´ÎʹÓÃpb10µÄÅóÓÑÎÞ·¨Ë³ÀûÁ¬½Óµ½sql server£¬Ò»·½ÃæÃ»ÓÐÁËmssql serverרÓýӿÚÁË£¬ÁíÒ»·½ÃæÊý¾Ý¿â¹ÜÀíϵͳ(DBMS)»»³ÉÁË“OLE DB”£¬ÅäÖÃÆðÀ´Óе㲻˳ÊÖ£¡ÏÂÃæ¾ÍÀ´½éÉÜpb10ÖÐÓÃOLE DBÁ¬½Ósql 2000Êý¾Ý¿â¡£
ÔÚ°²×°pb10µÄʱºòÑ¡Ôñcustom/full·½Ê½°²×°£¨Ä¬Èϵݲװ·½Ê½²»»á°²×°ole db½Ó¿Ú£©£¬next£¡·Èç¹ûÄãûÓа ......
×Ó±í²éѯ£¬¸¸±íÒ»¶¨Òª¼Ó±ðÃû£¬·ñÔòÊý¾Ý»áÓÐÎÊÌ⣬²»±¨±àÒë´í
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 ......