sql >> Databáze >  >> RDS >> Sqlserver

INSERT odstraněné hodnoty do tabulky před DELETE pomocí DELETE TRIGGER

Váš problém je:tento spouštěč se spustí PO k odstranění již došlo . Takže v HashTags už není žádný řádek ke kterému se můžete připojit!

Místo toho musíte použít tento spouštěč:

ALTER TRIGGER [dbo].[HashTags_BeforeDelete]
    ON [dbo].[HashTags]
    FOR DELETE
AS
  BEGIN
    INSERT INTO HashTagsArchive(Id, HashTagId, delete_date)
       SELECT 
           d.Id, d.HashTagId, GETUTCDATE() 
       FROM deleted d 
  END
GO

Deleted pseudo tabulka obsahuje celý řádek(y) které byly smazány – není třeba se k ničemu připojovat...

Také:tento spouštěč se spustí poté, co došlo k odstranění - takže nemusíte nic dělat sami, uvnitř spouštěče - stačí vložit tyto kousky informací do tabulky archivu - to je vše. Vše ostatní za vás vyřídí SQL Server.




  1. Neořízne funkce MySQL TRIM konce řádků nebo návrat vozíku?

  2. PostgreSQL Streaming Replication vs Logická replikace

  3. Postgresql rozdíl mezi daty dvou sloupců?

  4. Postgres nemůže otevřít soubor CSV pro přístup ke čtení:Povolení odepřeno