‘壹’ 触发器中删除数据库中的表
你可以试一下
CREATE TRIGGER CRITRIA_DEL ON dbo.DSS_Criteria FOR DELETE
AS
declare @CriteriaID int, @CriteriaName varchar(50)
select @CriteriaID=deleted.CriteriaID,@CriteriaName=deleted.CriteriaName from deleted
IF Exists(Select * From sysObjects Where Name =@CriteriaName And Type In ('S','U'))
BEGIN
EXEC('DROP TABLE '+@CriterriaName)
END
‘贰’ oracle触发器中,怎么删除触发的那条数据
此种处理方式无法实现
1,经测试在A触发器中,满足条件,写入B表,再删除A,删除的这个操作不能进行。
2,换个思路,在A添加触发器,满足条件,写入B,在B表上也添加触发器,满足条件,删除A,同样无法进行。
换个处理方式:
写入A,满足条件,再写入B, 再删除A, 那么写入A的时候就是个多余的动作。
最好的处理方式,不符合条件的写入A,符合条件的直接写入B
‘叁’ oracle数据库,写一个触发器,删除主表信息,同时删除从表信息
--设定主表:TA(itemnumber,addrvarchar2(100),phonevarchar2(12))
--从表:TB(itemnumber,namevarchar2(20),moneynumber(12,2))
--主键为item
CREATEORREPLACETRIGGERTR_DB_TA
BEFOREDELETE
ONTA
REFERENCINGNEWASNewOLDASOld
FOREACHROW
DECLARE
BEGIN
deleteTBwhereitem=:OLD.item;
EXCEPTION
WHENOTHERSTHEN
RAISE;
ENDTR_DB_TA;
/