ORACLE PL/SQL ´¥·¢Æ÷(trigger)ѧϰ±Ê¼Ç
1¡¢´¥·¢Æ÷µÄ¸ÅÄî
´¥·¢Æ÷Ò²ÊÇÒ»ÖÖ´øÃûµÄPL/SQL¿é¡£´¥·¢Æ÷ÀàËÆÓÚ¹ý³ÌºÍº¯Êý£¬ÒòΪËüÃǶ¼ÊÇÓµÓÐÉùÃ÷¡¢Ö´ÐкÍÒì³£´¦Àí¹ý³ÌµÄ´øÃûPL/SQL¿é¡£Óë°üÀàËÆ£¬´¥·¢Æ÷±ØÐë´æ´¢ÔÚÊý¾Ý¿âÖв¢ÇÒ²»Äܱ»¿é½øÐб¾µØ»¯ÉùÃ÷¡£
¶ÔÓÚ´¥·¢Æ÷¶øÑÔ£¬µ±´¥·¢Ê¼þ·¢ÉúµÄʱºò¾Í»áÏÔʽµØÖ´Ðиô¥·¢Æ÷£¬²¢ÇÒ´¥·¢Æ÷²»½ÓÊܲÎÊý¡£
´´½¨´¥·¢Æ÷µÄÓï·¨ÈçÏÂ
CREATE [OR REPLACE] TRIGGER trigger_name
{BEFORE | AFTER | INSTEAD OF} triggering_event
[referencing_clause]
[WHEN trigger_condition]
[FOR EACH ROW]
Trigger_body;
ÆäÖÐreferencing_clause×Ó¾äµÄÓÃ;ÊÇͨ¹ýÒ»¸ö²»Í¬µÄÃû³Æ£¬ÒýÓõ±Ç°ÕýÔÚ±»¸üеļǼÐÐÖеÄÊý¾Ý¡£WHEN×Ó¾äÖеÄtrigger_condition—Èç¹û³öÏÖ—¾ÍÓ¦¸ÃÊ×ÏÈÖ´ÐÐÅжϣ¬Ö»Óе±Õâ¸öÌõ¼þֵΪÕæµÄʱºò£¬²Å»áÖ´Ðд¥·¢Æ÷µÄÖ÷Ìå´úÂë¡£
2¡¢DML´¥·¢Æ÷µÄ¼¤»î˳Ðò
1£©Ö´ÐÐbeforeÓï¾ä¼¶´¥·¢Æ÷—Èç¹û´æÔÚÕâÖÖ´¥·¢Æ÷
2£©¶ÔÊܸÃÓï¾äÓ°ÏìµÄÿһÐмǼ
Ö´ÐÐbeforeÐм¶´¥·¢Æ÷—Èç¹û´æÔÚÕâÖÖ´¥·¢Æ÷
Ö´ÐиÃÓï¾ä±¾Éí
Ö´ÐÐafterÐм¶´¥·¢Æ÷--Èç¹û´æÔÚÕâÖÖ´¥·¢Æ÷
3£©Ö´ÐÐafterÓï¾ä¼¶´¥·¢Æ÷--Èç¹û´æÔÚÕâÖÖ´¥·¢Æ÷
ͬһÖÖÀàÐ͵Ĵ¥·¢Æ÷µÄµã»ð´ÎÐòûÓо¹ý¶¨Òå¡£Èç¹û¸Ã´ÎÐòºÜÖØÒªµÄ»°£¬ÄÇô½¨Ò齫ËùÓÐÕâЩ²Ù×÷×éºÏµ½Ò»¸ö´¥·¢Æ÷µ±ÖС£
3¡¢Ðм¶´¥·¢Æ÷ÖеĹØÁª±êʶ·û
´¥·¢Æ÷µÄ¼¤»îÓï¾äÿ´¦ÀíÒ»ÐÐÊý¾Ý£¬Ðм¶´¥·¢Æ÷¾Í»á¼¤»îÒ»´Î¡£¿ÉÒÔÔÚÕâÖÖÐм¶´¥·¢Æ÷ÄÚ²¿£¬·ÃÎÊÕý±»´¦ÀíµÄ¼Ç¼ÐÐÖеÄÊý¾Ý¡£ÕâÊÇͨ¹ýÁ½¸ö¹ØÁª±êʶ·û--:oldºÍ:new—ʵÏֵġ£¹ØÁª±êʶ·ûÒ²ÊÇPL/SQLµÄÒ»ÖÖÌØÊâµÄ°ó¶¨±äÁ¿¡£±êʶ·ûÇ°ÃæµÄðºÅ£¬¼È˵Ã÷Õâ¶þÕ߶¼Êǰ󶨱äÁ¿£¬Í¬Ê±Ò²ËµÃ÷ËüÃDz»ÊÇÒ»°ãµÄPL/SQL±äÁ¿¡£PL/SQL±àÒëÆ÷»á½«ËüÃÇ¿´×÷ÏÂÃæÕâ¸öÀàÐ͵ļǼ£º
Triggering_table%ROWTYPE
ÆäÖÐtriggering_tableÊÇÔÚÆäÉ϶¨Òå´¥·¢Æ÷µÄ±íÃû¡£ÓÚÊÇ£¬ÏÂÃæÕâÖÖÒýÓÃ
:new.field
¾ÍÖ»Óе±ÆäÖеÄfieldÊǸô¥·¢±íÖеÄ×Ö¶ÎÃûʱ²Å»áÓÐЧ¡£
´¥·¢Óï¾ä
:old
:new
INSERT
䶨Òå—ËùÓÐ×ֶξùΪNULL
´¥·¢Óï¾äÍê³ÉµÄʱºò£¬Òª²åÈëµÄÖµ
UPDATE
¸üÐÂÒÔÇ°ÏàÓ¦¼Ç¼ÐеÄÔʼֵ
´¥·¢Óï¾äÍê³ÉµÄʱºò£¬Òª¸üеÄÖµ
DELETE
ɾ³ýÒÔÇ°ÏàÓ¦¼Ç¼ÐеÄÔʼֵ
䶨Òå—ËùÓÐ×ֶξùΪNULL
×¢Ò⣺INSERTÓï¾äÉÏûÓж¨Òå:old±êʶ·û£¬DELETEÓï¾äÉÏҲûÓж¨Òå:new±êʶ·û¡£Èç¹ûÔÙINSERTÓï¾äÉ
Ïà¹ØÎĵµ£º
жÔØSQL Server 2005µÄ·½·¨Ö®Ò»£¬·ÅÔÚÕâ¶ùÖ»ÊÇΪÁ˼Çס£º
1£º°ÑSQL Server2005µÄ°²×°ÅÌ£¨°²×°Îļþ£©·ÅÈëµ½¹âÇý¡£
2£º´ò¿ªÈçÏ·¾¶£º¿ªÊ¼/ÔËÐУ¬ÊäÈ룺cmd
3£ºÊäÈëÏÂÁÐÃüÁ
Start /wait \setup.exe /qb REMOVE=ALL INSTANCENAME=£º¹ÜÇøÅÌ·û£¬ÀýÈ磺G£º¡¢H£ºµÈ£»£º°²×°µÄSQLServerʵÀýÃû³Æ£¬Ä¬ÈÏֵΪ£º¹¦ÄÜ ......
SQL Server 2005 ÈÕ־ɾ³ýºÍÈÕÖ¾ÎļþÏÞÖÆ(ת)
2009Äê08ÔÂ04ÈÕ ÐÇÆÚ¶þ ÏÂÎç 04:40
Çå³ýÈÕÖ¾£º
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT
USE szwzcheck ......
1. select replace(CA_SPELL,' ','') from hy_city_area È¥³ýÁÐÖеÄËùÓпոñ
2. LTRIM£¨£© º¯Êý°Ñ×Ö·û´®Í·²¿µÄ¿Õ¸ñÈ¥µô
3. RTRIM£¨£© º¯Êý°Ñ×Ö·û´®Î²²¿µÄ¿Õ¸ñÈ¥µô
4. select LOWER(replace(CA_SPELL,' ','')) f ......
using System;
using System.Text.RegularExpressions;
using Microsoft.SqlServer.Server;
public partial class UserDefinedFunctions
{
[Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true,IsPrecise = true)]
public static bool RegExIsMatch(string pattern,string matchString)
{
......
°üÓÉ°ü¹æ·¶ºÍ°üÌåÁ½²¿·Ö×é³É¡£
1¡¢°ü¹æ·¶£¨Package Specification£©
°ü¹æ·¶£¬Ò²½Ð×ö°üÍ·£¬°üº¬ÁËÓйذüµÄÄÚÈݵÄÐÅÏ¢¡£µ«ÊÇ£¬Ëü²»°üº¬Èκιý³ÌµÄ´úÂë¡£
´´½¨°üÍ·µÄÓï·¨Ò»°ãÈçÏÂ
CREATE [OR REPLACE] PACKAGE package_name {IS | AS}
Procedure_name | function_name | variable_declaration | type_def ......