我创建了一个触发器,当在表 T1 中插入或更新记录时,他将其镜像到表 T2 中(遵循一些条件)。
在 T1 中的第一条语句(插入)中,触发器运行良好(将 T1 中的所有内容复制到 T2)。但在第一次之后,触发器将不再运行(使用 Insert 或 update 子句)。
代码:
ALTER TRIGGER [dbo].[Replicacao]
ON [dbo].[ImportacaoXML]
AFTER UPDATE, INSERT
AS
BEGIN
IF EXISTS (SELECT ProgramacaoBarcas.ViagemID, ProgramacaoBarcas.Data
FROM ProgramacaoBarcas, inserted
WHERE ProgramacaoBarcas.ViagemID = inserted.ViagemID
AND ProgramacaoBarcas.Data = inserted.Data)
BEGIN
UPDATE ProgramacaoBarcas
SET ViagemID = inserted.ViagemID, Data = inserted.Data,
Extra = inserted.Extra, Modalidade = inserted.Modalidade,
FleetID = inserted.FleetID, Partida = inserted.Partida,
Chegada = inserted.Chegada, Capacidade = inserted.Capacidade,
LocationID = inserted.LocationID, DestinoID = inserted.DestinoID,
CodLinha = inserted.CodLinha
FROM inserted
WHERE ProgramacaoBarcas.ViagemID = inserted.ViagemID
AND ProgramacaoBarcas.Data = inserted.Data
AND ProgramacaoBarcas.Bloqueada = 0
END
ELSE
BEGIN
INSERT INTO ProgramacaoBarcas (ViagemID, Data, Extra, Modalidade, FleetID, Partida, Chegada, Capacidade, LocationID, DestinoID, CodLinha, Bloqueada)
SELECT
ViagemID, Data, Extra, Modalidade, FleetID, Partida, Chegada,
Capacidade, LocationID, DestinoID, CodLinha, 0
FROM inserted
END
END
有人有任何线索吗?我搜索了日志,但一无所获。有什么方法可以调试触发器吗?
(新手请耐心等待)
Obs:我找到了解决方案。现在代码是正确的。