❶ 创建一个触发器 如果删除一个表中一个信息 则该表中含有此信息的全部删除
create table t_user (name varchar(20),age int,stature int)
go
insert into t_user values ('张三',20,170)
insert into t_user values ('李四',22,170)
insert into t_user values ('王五',25,172)
go
create trigger tr_user
on t_user after delete
as
delete a from t_user a inner join deleted b on a.stature=b.stature
go
delete from t_user where stature=170
select * from t_user
❷ Sql Server触发器 怎样将一个表中的某一条数据删除后然后将这一条数据插入到另一个表中
--创建测试表
createtablet_a(idint,namevarchar(10));
createtablet_b(idint,namevarchar(10));
--测试数据
insertintot_a(id,name)values(1,'a');
--创建fordelete触发器
createtriggertrg_t_a_1
ont_a
fordelete
as
begin
insertintot_b
selectid,namefromdeleted;
end
--从t_a中删除一条数据
deletefromt_awhereid=1;
❸ oracle怎么用触发器删除依赖关系的表的数据
不用吧,我记得外键可以级联删除的。只要建立外键的时候加上在后面加上on delete cascade就行。这样你删除a表的时候,就会自动删除B表了。
不过现在很多时候不让这样用,因为有时可能会误操作导致数据删除,这样的话,恢复起来麻烦(只能一个表一个表的操作,因为没有级联更新啊),而且万一时间长了,也就没办法恢复了,这样数据的损失就不可避免,而且一般建立外健的主表的更新一般都是加,就算是减,也是以前的不再有数据,可是已经有的数据一般是不会删除的,所以现在一般不会加这个选择的。
就算减也不会太多,真要减的话,最好找相关领导签字(坚决不能自己背黑锅,我就杯具的背过一次),然后在手动操作(最好备份一份),确认无误,然后删除。防止哪天某些人抽风又要数据,如果没有那就杯具了。(最常见的理由:昨天还能查到,怎么今天查不到了?我晕,你让我删除的,nnd)这样的对话,最好不要发生在你那里。
❹ SQL触发器删除其余表相应信息
create trigger delete_PS_P
on PeopleSell
for delete
as
delete
from Picture
where exists(select * from deleted where Picture.ID=deleted.ID)
❺ 创建一个触发器,使其代替delete语句,从而可以删除表中的内容
CREATE TRIGGER [dbo].[TrigDeleteArea]
ON [dbo].[travel.Area]
AFTER DELETE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @AreaID int
select @AreaID =[area.AreaId] from inserted
delete [travel.line] where [line.AreaId]=@AreaID
-- Insert statements for trigger here
END
GO
❻ oracle触发器中,怎么删除触发的那条数据
此种处理方式无法实现
1,经测试在A触发器中,满足条件,写入B表,再删除A,删除的这个操作不能进行。
2,换个思路,在A添加触发器,满足条件,写入B,在B表上也添加触发器,满足条件,删除A,同样无法进行。
换个处理方式:
写入A,满足条件,再写入B, 再删除A, 那么写入A的时候就是个多余的动作。
最好的处理方式,不符合条件的写入A,符合条件的直接写入B
❼ 触发器中删除数据库中的表
你可以试一下
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
❽ 如何定义一个触发器,当删除表中数据时,先将删除的数据插入到另一个表中,然后执行删除操作
解决办法如下:
--创建测试表
createtablet_a(idint,namevarchar(10));createtablet_b(idint,namevarchar(10));--测试数据insertintot_a(id,name)values(1,'a');--创建fordelete触发器createtriggertrg_t_a_1ont_afordeleteasbegininsertintot_bselectid,namefromdeleted;end--从t_a中删除一条数据deletefromt_awhereid=1;❾ 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;
/
❿ sql触发器,怎样把一个表中删除的记录请入另一个表中
触发器中的 deleted表中就是保存删除的行。取出插入另一个表即可。
例:
CREATETRIGGERtri_del
ON表名FORDELETE
AS
declare@idint
declare@namevarchar(20)
select@id=id,@name=namefromdeleted--取删除的数据
insertinto表名2values(@id=id,@name)--插入另一个表