SQL Server´¥·¢Æ÷´´½¨¡¢É¾³ý¡¢Ð޸ġ¢²é¿´Ê¾Àý½Ì³Ì
Ò»﹕
´¥·¢Æ÷ÊÇÒ»ÖÖÌØÊâµÄ´æ´¢¹ý³Ì﹐Ëü²»Äܱ»ÏÔʽµØµ÷ÓÃ﹐¶øÊÇÔÚÍù±íÖвåÈë¼Ç¼﹑¸üмǼ»òÕßɾ³ý¼Ç¼ʱ±»×Ô¶¯µØ¼¤»î¡£ËùÒÔ´¥·¢Æ÷¿ÉÒÔÓÃÀ´ÊµÏÖ¶Ô±íʵʩ¸´ÔÓµÄÍê
ÕûÐÔÔ¼`Êø¡£
¶þ﹕ SQL
ServerΪÿ¸ö´¥·¢Æ÷¶¼´´½¨ÁËÁ½¸öרÓñí﹕Inserted±íºÍDeleted±í¡£ÕâÁ½¸ö±íÓÉϵͳÀ´Î¬»¤﹐ËüÃÇ´æÔÚÓÚÄÚ´æÖжø²»ÊÇÔÚÊý¾Ý¿âÖС£ÕâÁ½¸ö
±íµÄ½á¹¹×ÜÊÇÓë±»¸Ã´¥·¢Æ÷×÷ÓõıíµÄ½á¹¹Ïàͬ¡£´¥·¢Æ÷Ö´ÐÐ Íê³Éºó﹐Óë¸Ã´¥·¢Æ÷Ïà¹ØµÄÕâÁ½¸ö±íÒ²±»É¾³ý¡£
Deleted±í´æ·ÅÓÉÓÚÖ´ÐÐDelete»òUpdateÓï¾ä¶øÒª´Ó±íÖÐɾ³ýµÄËùÓÐÐС£
Inserted±í´æ·ÅÓÉÓÚÖ´ÐÐInsert»òUpdateÓï¾ä¶øÒªÏò±íÖвåÈëµÄËùÓÐÐС£
Èý﹕Instead of ºÍ After´¥·¢Æ÷
SQL Server2000ÌṩÁËÁ½ÖÖ´¥·¢Æ÷﹕Instead of ºÍAfter ´¥·¢Æ÷¡£ÕâÁ½ÖÖ´¥·¢Æ÷µÄ²î±ðÔÚÓÚËûÃDZ»¼¤»îµÄͬ﹕
Instead of´¥·¢Æ÷ÓÃÓÚÌæ´úÒýÆð´¥·¢Æ÷Ö´ÐеÄT-SQLÓï¾ä¡£³ý±íÖ®Íâ﹐Instead of
´¥·¢Æ÷Ò²¿ÉÒÔÓÃÓÚÊÓͼ﹐ÓÃÀ´À©Õ¹ÊÓͼ¿ÉÒÔÖ§³ÖµÄ¸üвÙ×÷¡£
After´¥·¢Æ÷ÔÚÒ»¸öInsert,Update»òDeletedÓï¾äÖ®ºóÖ´ÐÐ﹐½øÐÐÔ¼Êø¼ì²éµÈ¶¯×÷¶¼ÔÚAfter´¥·¢Æ÷±»¼¤»î֮ǰ·¢Éú¡£After´¥
·¢Æ÷Ö»ÄÜÓÃÓÚ±í¡£
Ò»¸ö±í»òÊÓͼµÄÿһ¸öÐ޸͝×÷(insert,updateºÍdelete)¶¼¿ÉÒÔÓÐÒ»¸öinstead of
´¥·¢Æ÷﹐Ò»¸ö±íµÄÿ¸öÐ޸͝×÷¶¼¿ÉÒÔÓжà¸öAfter´¥·¢Æ÷¡£
ËÄ﹕´¥·¢Æ÷µÄÖ´Ðйý³Ì
Èç¹ûÒ»¸öInsert﹑update»òÕßdeleteÓï¾äÎ¥·´ÁËÔ¼Êø﹐ÄÇçÛAfter´¥·¢Æ÷²»»áÖ´ÐÐ﹐ÒòΪ¶ÔÔ¼ÊøµÄ¼ì²éÊÇÔÚAfter´¥·¢Æ÷±»¼¤¶¯Ö®Ç°·¢
ÉúµÄ¡£ËùÒÔAfter´¥·¢Æ÷²»Äܳ¬Ô½Ô¼Êø¡£
Instead of
´¥·¢Æ÷¿ÉÒÔÈ¡´ú¼¤·¢ËüµÄ²Ù×÷À´Ö´ÐС£ËüÔÚInserted±íºÍDeleted±í¸Õ¸Õ½¨Á¢﹐ÆäËüÈκβÙ×÷»¹Ã»Óз¢Éúʱ±»Ö´ÐС£ÒòΪInstead of
´¥·¢Æ÷ÔÚÔ¼ÊøÖ®Ç°Ö´ÐÐ﹐ËùÒÔËü¿ÉÒÔ¶ÔÔ¼Êø½øÐÐһЩԤ´¦Àí¡£
Îå﹕ʹÓÃT-SQLÓï¾äÀ´´´½¨´¥·¢Æ÷
»ù±¾Óï¾äÈçÏÂ﹕
create trigger t
Ïà¹ØÎĵµ£º
/*------------------------------------------------------------------
-- Author : htl258(Tony)
-- Date : 2010-04-15 22:07:01
-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
Jul 9 2008 14:43:34
Copy ......
Ò»¡¢»ù´¡
1¡¢ËµÃ÷£º´´½¨Êý¾Ý¿â
CREATE DATABASE database-name
2¡¢ËµÃ÷£ºÉ¾³ýÊý¾Ý¿â
drop database dbname
3¡¢ËµÃ÷£º±¸·Ýsql server
--- ´´½¨ ±¸·ÝÊý¾ÝµÄ device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- ¿ªÊ¼ ±¸·Ý
BACKUP DATABASE pubs TO testBack
4¡¢Ëµ ......
Êý¾Ý¿âÖ´ÐÐexec sp_renamedb 'oldname','newname'Óï¾ä£¬ÖØÃüÃûºó£¬½«Êý¾Ý¿â±¸·ÝÎļþ»¹Ôʱ£¬»á³öÏÖ´íÎó£¬Èçͼ
ÒòÊýÊý¾ÝÎļþÓëÊý¾Ý¿âÃû³Æ²»Ò»Ö¡£
½â¾ö·½·¨£º¿ÉÒÔÕÒµ½Êý¾ÝÎļþµÄÃû³Æ£¬½«Êý¾Ý¿â»¹ÔÃû³Æ¸úÊý¾Ý¿âÎļþÒ»ÖµÄÃû³Æ£¬´Ëʱ»¹Ô³É¹¦ºó£¬ÔÙÐÞ¸ÄÊý¾Ý¿âµÄÃû³Æ¡£
×¢£ºÊý¾Ý¿âÖØÃüʱ£¬Ð轫SQL·þÎñÆ÷Í£Ö¹£¬ÖØÃüÃûºóÔÙÖØÐ ......
ʹÓô¥·¢Æ÷À´ÊµÏÖ
create table test(
id varchar(20),
sname varchar(20)
)
create TRIGGER [test_insert] ON [dbo].[test]
INSTEAD OF INSERT
AS
declare @str varchar(20)
declare @i integer
set @str = 'BV'+left(convert(char,getdate(),112),6)
select @i=isnull(max(cast(right(rtrim(id),len(id)-8 ......