1

所以我是 SQLite 的 SQL Server 新手,我习惯于使用 New|Old 关键字。我看到有些人使用该inserted值来引用新创建的行,但这仅适用于插入而不适用于更新。如何获得类似于New我在此查询中使用的内容?

create trigger ports_country_id_in_check
on [SISTEMA].Puerto
after insert, update
AS
BEGIN
  update [SISTEMA].Puerto
  set country_id = (select secuencia from [SISTEMA].Pais where codigo = New.pais_asociado)
  where [SISTEMA].Puerto.secuencia = New.secuencia
end
4

2 回答 2

3

插入也将适用于更新。一个更新的行将被视为已删除和插入的行。因此,您可以检查过去和现在的情况。

于 2013-03-05T16:14:39.473 回答
0
create trigger ports_country_id_in_check
on [SISTEMA].Puerto
after insert, update
AS
BEGIN
  Declare @pais_asociado, @secuencia int

  select @pais_asociado = Puerto.pais_asociado, @secuencia = Puerto.secuencia
  from Puerto join inserted
  where Puerto.secuencia = inserted.secuencia

  update [SISTEMA].Puerto
  set country_id = (select secuencia from [SISTEMA].Pais where codigo = @pais_asociado)
  where [SISTEMA].Puerto.secuencia = @secuencia
end
于 2013-12-10T02:27:44.167 回答