Как организовать обновленную регистрацию строк - PullRequest
1 голос
/ 30 августа 2010

У меня есть несколько таблиц в Sql Server.Я хочу записать строку, если строка обновлена ​​или удалена.как мне организовать этот процесс?

Пример структуры таблицы:

    [uniqueGUID] [uniqueidentifier] NOT NULL,
    *[kod_a] [nchar](5) NOT NULL,
    *[kod_b] [nchar](5) NOT NULL,
    *[kod_c] [nchar](2) NOT NULL,
    *[kod_d] [nchar](4) NOT NULL,
    [name] [nvarchar](25) NULL,
    [sname] [nvarchar](25) NULL,
    [address] [nvarchar](25) NULL,
    [payment] money NULL

Примечание: отмеченные столбцы (kod_a, kod_b, kod_c, kod_d) являются уникальным содержанием вместе.Другие таблицы также в той же структуре, количество столбцов может быть другим.

немного идей, пожалуйста.

спасибо.

Ответы [ 2 ]

0 голосов
/ 30 августа 2010

Если все ваши обновления проходят через одну хранимую процедуру, вы можете создать и выполнить хранимую процедуру аудита при обновлении или удалении данных в этой таблице.

Триггеры отличные, но иногда они могут причинять боль. Если возможно, избегайте их использования.

0 голосов
/ 30 августа 2010

Старые данные могут быть представлены в триггере с помощью Удаленная таблица .Я приведу короткий пример, чтобы вы начали.

create trigger YourTriggerName on YourTable
after update, delete
as
    /* Deleted table contains the "old" values before the update/delete operation */
    insert into YourLoggingTable
        (UniqueGUID, kod_a, ..., payment, DateModified)
        select UniqueGUID, kod_a, ..., payment, getdate()
            from Deleted 
go
...