我創建了一個觸發器,當在表T1中插入或更新記錄時,他在表T2中反映了這一點(遵循一些條件)。觸發只能工作一次/調試
在T1的第一條語句(插入)中,觸發器工作正常(將T1中的所有內容複製到T2)。但是在第一個之後,觸發器將不再運行(使用插入或更新子句)。
代碼:
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
任何人有任何線索?我搜索了日誌,但什麼都沒發現。有什麼方法可以調試觸發器嗎?
(新手在這裏,請耐心等待)
觀測數據:我找到了解決辦法。代碼現在是正確的。
會發生什麼同步兩個表,如果在T1表中刪除記錄? – 2013-04-24 19:50:13
什麼都沒有。現在它「不重要」。 – Juliano 2013-04-24 19:59:14