由于一直编码写程序,很少编写数据库代码,所以对于触发器什么的都不太熟悉。
以下为最近触发器的使用:<下面为table1创建增删改触发器>
--理解触发器
假如对table1进行修改,我们需要同时修改table2,这时我们可以使用触发器。以下为触发器原理
对表的操作 | Inserted逻辑表 | Deleted逻辑表 |
增加记录(insert) | 存放增加的记录 | 无 |
删除记录(delete) | 无 | 存放被删除的记录 |
修改记录(update) | 存放更新后的记录 | 存放更新前的记录 |
--判断触发器是否存在
if exists(select * from dbo.sysobjects where id =object_id('Trigger_table1)and OBJECTPROPERTY(id,N'IsTrigger')=1) drop trigger Trigger_table1 go
---Delete类型触发器
Create Trigger DeleteTrigger_table1 on table1 for Delete as insert into T_CorrespondentNodeTracking (id,name) select deleted.ID,deleted.name from deleted ----这里可以执行别的操作 注意 deleted go
---UPDATE类型触发器
Create Trigger UpdateTrigger_table1 on table1 for UPDATE as if update(name) --如果不需要判断 删除即可 begin insert into table2(id,name) select inserted.ID,inserted.name from inserted ----这里可以执行别的操作 注意(inserted这里代表修改后的table1,deleted代表修改前table1) end go
---INSERT类型触发器
Create Trigger InsertTrigger_table1 on table1 for insert as insert into table2(id,name)select inserted.ID,inserted.name from inserted go
在触发器中不能使用 text、ntext、image类型,求助解决方案中...