Heim >Datenbank >MySQL-Tutorial >Wie kann ich die SQL-Anweisungen protokollieren, die sich auf eine bestimmte Tabelle in SQL Server auswirken?

Wie kann ich die SQL-Anweisungen protokollieren, die sich auf eine bestimmte Tabelle in SQL Server auswirken?

DDD
DDDOriginal
2025-01-03 01:00:39205Durchsuche

How Can I Log the SQL Statements Affecting a Specific Table in SQL Server?

Erstellen von Triggern zum Protokollieren von betroffenem SQL in SQL Server

In SQL Server 2008 können Sie Trigger erstellen, um das SQL zu erfassen, das eine Tabelle ändert und protokollieren Sie es zu Prüfzwecken.

Trigger Definition:

CREATE TRIGGER [dbo].[triggerAfterUpdate] 
   ON  [dbo].[TableWithMysteryUpdate] 
   AFTER UPDATE
AS 
BEGIN
    SET NOCOUNT ON;

    INSERT INTO [dbo].[LogTable] (
        ModifiedDate,
        ModifyingSQL
    )
    VALUES (
        GETDATE(),
        EVENTDATA()
    );
END

Protokolltabellendefinition:

CREATE TABLE [dbo].[LogTable] (
    [LogID] [INT] NOT NULL IDENTITY(1, 1),
    [ModifiedDate] [DATETIME] NOT NULL,
    [ModifyingSQL] [NVARCHAR](MAX) NOT NULL
);

Beispielverwendung:

Nach dem Erstellen Als Auslöser werden alle Aktualisierungen der Tabelle [dbo].[TableWithMysteryUpdate] im protokolliert [dbo].[LogTable].

Zusätzliche Hinweise:

  • Die Funktion EVENTDATA() erfasst die ausgeführte SQL-Anweisung, die das Ereignis ausgelöst hat.
  • Die Funktion GETDATE() zeichnet Datum und Uhrzeit der Aktualisierung auf.
  • Sie können die Protokolltabelle anpassen, um zusätzliche Informationen wie z Benutzer, der die Aktualisierung vorgenommen hat, oder die betroffenen Zeilen.
  • Dieser Ansatz bietet Einblick in die SQL, die bestimmte Tabellen ändert, ohne dass umfassende Datenbankkenntnisse erforderlich sind.

Das obige ist der detaillierte Inhalt vonWie kann ich die SQL-Anweisungen protokollieren, die sich auf eine bestimmte Tabelle in SQL Server auswirken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn