触发插入多条记录

时间:2019-10-21 18:54:38

标签: sql-server sql-delete database-trigger

我正在尝试创建一个触发器,以将我从表中删除的所有值插入“备份”表中, 例如:

main

我希望触发器执行的操作:将表1中已删除的值插入“表2”中。

我尝试过这样:

Table 1: NomePilota, ModelloVettura, NomeScuderia

BackupTable1 (Table 2): NomePilota, ModelloVettura, NomeScuderia

但是它发送了一个错误:

  

无法在@ Pilota,@ Vet,@ Scud中插入多个记录

我该如何解决?被删除的表是否已经有一个默认ID列,可以像for中那样使用?我可以使用矢量吗? (例如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) @Nome[] = SELECT * FROM Tabella [@ Numero(数字是Nome的记录号)。)

1 个答案:

答案 0 :(得分:3)

为什么不让生活变得简单?

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

insert语句可以处理select的结果-在这里我们利用它来简化手头的任务。