❶ 創建一個觸發器 如果刪除一個表中一個信息 則該表中含有此信息的全部刪除
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)--插入另一個表