求教:触发器(50分)

  • 主题发起人 主题发起人 spary123
  • 开始时间 开始时间
S

spary123

Unregistered / Unconfirmed
GUEST, unregistred user!
当向表a(id int,name varchar(30),city varchar(30),country varchar(30)).插入一行值时,向表b与a结构相同也插入相同的值.还有删除,更新.初学请教:触发器怎么做?
 
CREATE TRIGGER [TRIG_TD_CHECK_INSTANCE] ON dbo.TD_CHECK_INSTANCE
FOR INSERT
AS
INSERT INTO TH_CHECK_INSTANCE SELECT
TRAIN_SEQUENCE,
TRAIN_NO,
TRAIN_TYPE,
START_STATION,
ARRIVE_STATION,
KIND_NAME,
KIND_NO,
WEIGHT,
ARRIVE_DATETIME,
START_DATETIME,
CONTENT_MEMO,
CHECK_DATE,
ARRIVE_TIME,
DEPARTMENT_NAME,
SUBSTATION,
TRIM_CANVAS_NUM,
DOOR_WINDOWS_NUM,
BIND_FORCE_NUM,
LEFT_RENEW_SEAL_NO,
RIGHT_RENEW_SEAL_NO,
RENEW_SEAL_NUM,
TRAIN_OTHER,
FORCE_BADNESS,
REPLACE,
OVERLOADING,
DISOBEY_RULE,
THROW_TRAIN_OTHER,
EXCHANGE_LOADING_REASON,
BROAD_TRAIN,
BLAST_NUM,
VIRULENT_KIND,
LNG,
DANGEROUS_OTHER,
PHOTO_NUM,
TELEGRAPH_NO,
TELEGRAPH_TIME,
GENERAL_RECORD_NO,
LEFT_ADD_LOCK,
RIGHT_ADD_LOCK,
LEFT_ADD_CARD,
RIGHT_ADD_CARD,
LEFT_ADD_CORD,
RIGHT_ADD_CORD,
EIGHT_WIRE,
TEN_WIRE,
YAO_CORD,
DIRECTION_FLAG,
CARGO_KIND,
CLASS_TYPE,
CHECK_START_TIME,
CHECK_OVER_TIME,
LEFT_CHECKER,
RIGHT_CHECKER,
ASSESSOR,
ASSESSOR_FLAG,
ASSESSOR_DATE,
MEMO,
FILL_TABLE_TIME,
RUN_FLAG,
TUDINGTIME,
TRACK_NO,
REAL_NUM,
TRAIN_NUM,
SAVE_DATE,
ZUOYEXINGZHI_FLAG
from TD_CHECK_INSTANCE where DATEDIFF(DAY,SAVE_DATE,GETDATE())>20
DELETE TD_CHECK_INSTANCE WHERE DATEDIFF(DAY,SAVE_DATE,GETDATE())>20
 
如果是sqlserver的话,下面是个简单的例子。
create table t1(id int,num int)
create table t2(id int,num int)
insert t1 values (1,2)
insert t1 values (2,3)
insert t1 values (3,4)
insert t1 values (4,5)

--insert触发器
create trigger tri_insert_t1 on t1
for insert
as
insert into t2 select * from inserted
--
insert into t1 select 1,1
select * from t2
--update触发器
create trigger tri_update_t1 on t1
for update
as
if update(num)
begin
update t2 set num=A.num from inserted A where A.id=t2.id
end
--
update t1 set num=2 where id=3
select * from t2

update t1 set num=2 where id=1
select * from t2
--delete触发器
create trigger tri_delete_t1 on t1
for delete
as
delete from t2 where id in (select id from deleted)
--
delete from t1 where id=3
select * from t2

delete from t1 where id=1
select * from t2
 
接收答案,谢了
 

Similar threads

S
回复
0
查看
859
SUNSTONE的Delphi笔记
S
S
回复
0
查看
785
SUNSTONE的Delphi笔记
S
S
回复
0
查看
838
SUNSTONE的Delphi笔记
S
S
回复
0
查看
799
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部