SQLServerÖжÔËùÓеÄÓû§±íÉú³É´¥·¢Æ÷
²âÊÔµÄʱºò±È½ÏÖØÒª£¬ÎÒÃÇ¿ÉÒÔÖªµÀµ±Ç°½»Ò×Ó°ÏìÁËÄÄЩ±í
--ÓÃÓڼǼÓû§ÔÚµ±Ç°±íÉÏʲôʱºò¡¢×öµÄʲô²Ù×÷£ºupdate¡¢insert¡¢delete
create table TriggerRecord
(
operdt datetime, --´¥·¢Ê±¼ä
opertp varchar(10), --²Ù×÷ÀàÐÍ£ºupdate¡¢insert¡¢delete
opertb varchar(50) --±íÃû
)
--Õâ¸ö±íÓÚÓñ£´æÉú³ÉµÄ´¥·¢Æ÷Óï¾ä£¬ÔÚ¹ý³ÌÖÐÑ»·Ö´ÐÐ
--ÒòΪSqlserver²»ÔÊÐíÔÚÒ»¸öÅú´ÎͬʱִÐжàÌõcreate triggerÓï¾ä
create table T(sqlTrigger varchar(500))
--Ñ»·Ö´ÐдæÓÚ±íÖд¥·¢Æ÷µÄ´æ´¢¹ý³Ì
create proc loopExecTrigger
as
begin
declare @sql varchar(500)
declare cur cursor for select sqlTrigger from T
open cur
fetch cur into @sql
while @@fetch_status=0
begin
execute(@sql)
fetch cur into @sql
end
close cur
deallocate cur
delete T
end
--ÓÃÓÚÉú³É²åÈëÓï¾äµÄ´¥·¢Æ÷£¬²¢½«´¥·¢Æ÷Óï¾ä±£´æµ½±íÖÐ
select 'insert into T values(''create trigger T_'+name+' on '+name+' for insert as insert into TriggerRecord values(getdate(),''''insert'''','''''+name+''''');'')' from sysobjects where type='U' and name not in('T','TriggerRecord')
--½«ÒÔÉÏÉú³ÉµÄÓï¾ä¿½±´³öÀ´Ö´ÐÐ
--ÓÃÓÚÉú³É¸üÐÂÓï¾äµÄ´¥·¢Æ÷£¬²¢½«´¥·¢Æ÷Óï¾ä±£´æµ½±íÖÐ
select 'insert into T values(''create trigger T_'+name+'_U on '+name+' for update as insert into TriggerRecord values(getdate(),''''update'''','''''+name+''''');'')' from sysobjects where type='U' and name not in('T','TriggerRecord')
--½«ÒÔÉÏÉú³ÉµÄÓï¾ä¿½±´³öÀ´Ö´ÐÐ
--ÓÃÓÚÉú³Éɾ³ýÓï¾äµÄ´¥·¢Æ÷£¬²¢½«´¥·¢Æ÷Óï¾ä±£´æµ½±íÖÐ
select 'insert into T values(''create trigger T_'+name+'_D on '+name+' for delete as insert into TriggerRecord values(getdate(),''''delete'''','''''+name+''''');'')' from sysobjects where type='U' and name not in('T','TriggerRecord')
--½«ÒÔÉÏÉú³ÉµÄÓï¾ä¿½±´³öÀ´Ö´ÐÐ
--Ö´ÐÐͨ¹ýÉÏÃæÓï¾äÉú³ÉµÄÓï¾äºó£¬ÔÙÖ´Ðд洢Éú³É´¥·¢Æ÷µÄ´æ´¢¹ý³Ì
exec loopExecTrigger
--Éú³Éɾ³ýÈ«²¿ÒÔT¿ªÍ·µÄ´¥·¢Æ÷µÄÓï¾ä
select 'drop trigger '+name+';' from sysobjects where type='TR' and name l
Ïà¹ØÎĵµ£º
· ±¾ÎÄÌÖÂÛÁËÈçºÎͨ¹ýTransact-SQLÒÔ¼°ÏµÍ³º¯ÊýOPENDATASOURCEºÍOPENROWSETÔÚͬ¹¹ºÍÒì¹¹Êý¾Ý¿âÖ®¼ä½øÐÐÊý¾ÝµÄµ¼Èëµ¼³ö£¬²¢¸ø³öÁËÏêϸµÄÀý×ÓÒÔ¹©²Î¿¼¡£
1. ÔÚSQL ServerÊý¾Ý¿âÖ®¼ä½øÐÐÊý¾Ýµ¼Èëµ¼³ö
(1).ʹÓÃSELECT INTOµ¼³öÊý¾Ý
  ......
SQLServer2005ͨ¹ýintersect,union,exceptºÍÈý¸ö¹Ø¼ü×Ö¶ÔÓ¦½»¡¢²¢¡¢²îÈýÖÖ¼¯ºÏÔËËã¡£
ËûÃǵĶÔÓ¦¹ØÏµ¿ÉÒԲο¼ÏÂÃæÍ¼Ê¾
Ïà¹Ø²âÊÔʵÀýÈçÏ£º
use tempdb
go
if (object_id ('t1' ) is not null ) drop table t1
if (object_id ('t2' ) is not null ) drop table t2
go
cre ......
1.Èç¹ûÏÈprepare ºóÌí¼Ó²ÎÊý£¬ÕâÑùÒ»²¿·ÖÊý¾ÝÀàÐÍ¿ÉÒÔ²»ÓÃÉèÖÃÆäsize´óС£¬ÀýÈçchar
2.Èç¹ûÏÈÌí¼Ó²ÎÊýÔÙprepare£¬¾Í±ØÐëÉèÖòÎÊýµÄÀàÐÍ£¬´óС£¬¾«¶È²ÅÄÜͨ¹ý£¬±ÈÈçchar,varchar,decimalÀàÐÍ£¬¶øint,floatÓй̶¨×Ö½ÚÀàÐ͵ÄÊý¾ÝÀàÐÍÔò¿É²»ÓÃÉèÖôóС¡£
3.¹ØÓÚSqlServerµÄtimestampÀàÐÍ£º¸ÃÀàÐÍΪSqlServerµÄʱ¼ä´ÁÀàÐÍ£¬´´½ ......
SqlServerÃüÃû¹æ·¶
²Î¿¼¸÷ÖÖÃüÃû¹æ·¶£¬ÎÒÃÇͳһʹÓÃÃüÃû¹æ·¶ÈçÏ£º
ÃüÃû¹ý³ÌÖÐÈçÓÐÏÖ´æµÄËõд£¬ÔòʹÓøÃËõд£¬ÈçÎÞ£¬Ò»Âɲ»µÃËõд£¬Àý£ºISBN
Êý¾Ý¿â£ºÓÃÒ»¸ö»òÈý¸öÒÔÏÂÓ¢Îĵ¥´Ê×é³É£¬µ¥´ÊÊ××Öĸ´óд£¬È磺DepartmentManage£»
±íÃû£ºÊ¹ÓÃÃû´ÊÐÔÖʵĵ¥´Êȫƴ±íʾ£¬¸÷µ¥´ÊÊ××Öĸ´óд£¬ ʹÓø´ÊýÐÎʽ£¬È磺Books
& ......