如何参考;新",&引用;旧的;SQL server中触发器的行?

如何参考;新",&引用;旧的;SQL server中触发器的行?,sql,sql-server,Sql,Sql Server,因此,我是SQLite的新用户,并且习惯于使用新的|旧关键字。我看到有些人使用inserted值来引用新创建的行,但这只适用于insert,而不适用于更新。我怎样才能得到我在这个查询中使用的New create trigger ports_country_id_in_check on [SISTEMA].Puerto after insert, update AS BEGIN update [SISTEMA].Puerto set country_id = (select secuenc

因此,我是SQLite的新用户,并且习惯于使用新的|旧关键字。我看到有些人使用
inserted
值来引用新创建的行,但这只适用于insert,而不适用于更新。我怎样才能得到我在这个查询中使用的
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

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

INSERT
INSERT/UPDATE
上的新行
DELETED
DELETE
上的已删除行和
UPDATE
上的更新行(即更新行之前的旧值)您是否查看了解释插入的
(和
DELETED
)表?
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