Триггер для вставки нескольких записей - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь создать триггер, чтобы вставить все значения, которые я удаляю из таблицы в таблицу «Резервная копия», например:

Table 1: NomePilota, ModelloVettura, NomeScuderia

BackupTable1 (Table 2): NomePilota, ModelloVettura, NomeScuderia

Что я хочу сделать из триггера: Вставитьв «Таблицу 2» удалили значения из таблицы 1.

Я пытался так:

CREATE TRIGGER Backup ON dbo.Table1 AFTER (i can only use after) DELETE AS
BEGIN

  DECLARE @Pilota VARCHAR(20) = (SELECT NomePilota FROM deleted)

  DECLARE @Vettura VARCHAR(50) = (SELECT ModelloVettura FROM deleted)

  DECLARE @Scuderia VARCHAR(20) = (SELECT NomeScuderia FROM deleted)

  INSERT INTO Table2 (NomePilota, ModelloVettura, NomeScuderia) VALUES (@Pilota, @Vettura, @Scuderia)

Но отправляется ошибка:

Невозможно вставить несколько записейв @Pilota, @Vet, @ Scud

Как я могу это исправить? У удаленной таблицы уже есть столбец идентификатора по умолчанию для использования, как в for? Могу ли я использовать что-то вроде векторов? (например, @Nome[] = SELECT * FROM Tabella, Insert into Tabella2 (Nome) VALUES @Nome [@ Numero (цифра похожа на номер записи нома]).

1 Ответ

2 голосов
/ 21 октября 2019

Почему бы не упростить жизнь?

INSERT INTO Table2 (NomePilota, ModelloVettura, NomeScuderia) 
   SELECT NomePilota, ModelloVettura, NomeScuderia FROM deleted

Вложение вставки может воздействовать на результаты выбора - здесь мы используем это, чтобы упростить задачу под рукой.

...