MahmoudOmar Ответов: 1

Как я создаю триггер перед удалением и сохранением имени пользователя


у меня есть таблица 1: - код : имя : телефон: удалено: дата
1 МММ 02156

Таблица 2 сохранение данных перед удалением,

Таблица 2: - код : имя : телефон: удалено: дата
1 МММ 02156 admin 22/7/2016

Что я уже пробовал:

Как я это делаю пожалуйста и спасибо,

1 Ответов

Рейтинг:
1

Richard Deeming

Триггеры SQL не имеют опции "до". Единственные варианты - "После" или " вместо":
Создать триггер (Transact-SQL)[^]

Однако похоже, что вы просто хотите скопировать удаленные записи в другую таблицу. Для этого все, что вам нужно, - это триггер "после" и deleted виртуальная таблица:

CREATE TRIGGER TR_Table1_SaveDeleted
ON dbo.Table1
AFTER DELETE
As
BEGIN
    SET NOCOUNT ON;
    
    INSERT INTO dbo.Table2
    (
        Code,
        Name,
        Phone,
        DeletedBy,
        Date
    )
    SELECT
        Code,
        Name,
        Phone,
        SUSER_NAME(),
        GetUtcDate()
    FROM
        deleted
    ;
END;


MahmoudOmar

user_name (), его save user in sql, я хочу сохранить пользователя, который входит в программу.

Richard Deeming

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

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

MahmoudOmar

хорошо и спасибо