SQL После удаления, вставки или обновления триггер - PullRequest
0 голосов
/ 16 марта 2019

Не могли бы вы помочь мне начать это?

У меня есть таблица с таким форматом:

CREATE TABLE [dbo].[ACS_ARMAZEM]
(
    [ARM_ID] [INT] IDENTITY(20000,1) NOT NULL,
    [ARM_DES] [NVARCHAR](50) NOT NULL,
    [ARM_5_COD_DIG] [NVARCHAR](5) NOT NULL,
    [ARM_SIT] [INT] NOT NULL,
    [ARM_BIZ_TIP] [INT] NOT NULL,
    [ARM_STK_CTRL] [INT] NOT NULL,
    [ARM_DAT_CRI] [DATE] NOT NULL,
)

Мне нужно зарегистрировать все изменения (вставить, удалить или обновить)в таблицу журнала у меня есть.

Но я хочу записать старые и новые значения (даже если новая строка вставлена, я хочу записать его как ноль в старых столбцах).

С уважением,

RL

1 Ответ

1 голос
/ 16 марта 2019

Говоря коротко, вам нужно использовать вставленные и удаленные таблицы. то есть.

Для вставки / обновления:

UPDATE [YourTable]
   SET [YourColumn] = i + 1
OUTPUT deleted.[YourColumn], inserted.[YourColumn] INTO [YourLogTable]
WHERE i = 1;

(Здесь удалено даст старые значения, где вставлено дает новые)

Для удаления:

DELETE from [YourTable]
OUTPUT deleted.[YourColumn], NULL INTO [YourLogTable]
WHERE i = 2;

Конечно, вам нужно изменить оператор, чтобы он соответствовал вашей структуре таблицы журнала. Пожалуйста, дайте мне знать, если это поможет. :)

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