Magische Tabellen in SQL Server

Blog

Es gibt Magic Tables (virtuelle Tabellen) in SQL Server, die die zeitlichen Informationen von kürzlich eingefügten und kürzlich gelöschten Daten in der virtuellen Tabelle enthalten. INSERTED und DELETED sind zwei Arten von Magic Tables in SQL Server. Eine magische Tabelle INSERTED wird mit INSERT- und UPDATE-Operationen gefüllt, und eine DELETED Magic Table wird mit UPDATE- und DELETE-Operationen gefüllt.



Die magische Tabelle INSERTED speichert die Vorversion der Zeile, und die Tabelle DELETED speichert die Nachversion der Zeile für alle INSERT-, UPDATE- oder DELETE-Operationen.

Eine magische Tabelle kann in INSERT-, UPDATE- und DELETE-Aktivitäten mit der Tabelle in einem Trigger verwendet werden, was das allgemeine Verständnis von Menschen ist. SQL Server verwendet magische Tabellen außerhalb des TRIGGER auch für viele andere Zwecke. Die Verwendung von Magic-Tabellen in SQL Server mit der üblichen Update-Anweisung verringert die Informationsabhängigkeit und sorgt dafür, dass Ihre Informationen mit Ihrer Transaktion konsistent sind.



EINFÜGUNG : Die magische Tabelle INSERTED hat die neu eingefügten Zeilen oben in der Tabelle mit einer Einfügeoperation. Es kann verwendet werden, um ein Audit der Tabelle auf eine andere Verlaufstabelle zu verwalten.

LÖSCHEN : Die Magic Table DELETED hat die zuletzt gelöschten Zeilen oben in der Tabelle mit einem Löschvorgang. Sie kann verwendet werden, um eine frühere Version der Zeile für Prüfzwecke in der Verlaufstabelle zu verwalten.



AKTUALISIEREN : Sowohl die virtuellen Tabellen INSERTED als auch DELETED sind Teil einer Aktualisierungsanweisung. Die Update-Anweisung gibt die gelöschte Magic Table mit der vorherigen Version der Zeile und die eingefügte Magic Table mit der neuen Version einer Zeile zurück, die mit den früheren Werten in der Tabelle ersetzt oder aktualisiert wird. Wichtig ist, dass immer dann, wenn Benutzer die Update-Anweisung innerhalb des Triggers oder außerhalb des Triggers ausführen, die magischen Tabellen INSERTED und DELETED verwendet werden.

Eingefügte und gelöschte magische Tabellen in SQL Server

Eine häufige Verwendung von Magic-Tabellen in SQL Server ist der DML-Trigger (Data Manipulation Language). Der SQL Server DML-Trigger ermöglicht die Verwendung dieser beiden virtuellen Tabellen INSERTED und DELETED. Die ideale Verwendung des Triggers besteht darin, eine Vorher- und Nachher-Version der Tabellenzeile für die INSERT-, UPDATE- oder DELETE-Operation innerhalb der Transaktionsanweisung zu prüfen und zu verwalten. Sogar Benutzer können mit diesen magischen Tabellen innerhalb des Triggers auch Datenmanipulationslogik schreiben.

Eine magische Tabelle wird in der temporären DB gespeichert. Wenn Sie die magischen Tabellen in SQL Server mit der Abfrageanweisung verwenden, kommt daher tempdb ins Spiel.

Immer wenn die magische Tabelle mit einer Abfrageanweisung in der Transaktion verwendet wird, wird tempdb von dieser Anweisung beeinflusst. Unten sind die Einschränkungen der magischen Tabelle im Vergleich zur tatsächlichen temporären Tabelle (## Tabelle)

  • Benutzer können keinen Index erstellen oder Einschränkungen auf die magischen Tabellen in SQL Server anwenden
  • Sie können nicht geändert werden, da der Zweck der magischen Tabelle darin besteht, die Informationen im System zu überprüfen

#entwicklung #sql

www.sqlshack.com

Magische Tabellen in SQL Server

Es gibt Magic Tables (virtuelle Tabellen) in SQL Server, die die zeitlichen Informationen von kürzlich eingefügten und kürzlich gelöschten Daten in der virtuellen Tabelle enthalten. INSERTED und DELETED sind zwei Arten von Magic Tables in SQL Server.