Hi,
habe einen Trigger, welcher bei UPDATE der Tabelle1 ausgeläst wird. Nun möchte ich die veränderte Spalte in TabelleNEU mit INSERT einfügen wenn sie noch nicht in TabelleNEU existiert, und ein UPDATE ausführen, wenn die Spalte bereits vorhanden ist und verändert wurde. Vergleichsspalte ist SpalteA (eine ID mit Primary Key)
USE [DB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[TriggerName]
ON [dbo].[Tabelle] FOR UPDATE NOT FOR REPLICATION
AS
BEGIN
SET NOCOUNT ON
IF EXISTS(SELECT A.SpalteA FROM Tabelle1 AS A INNER JOIN inserted AS B ON A.SpaltaA = B.SpalteA)
BEGIN
UPDATE TabelleNEU SET
SpalteE = B.SpalteE,
SpalteF = B.SpalteF
FROM TabelleNEU AS A INNER JOIN inserted AS B
ON A.SpalteA = B.SpalteA AND A.SpalteB = B.SpalteB
END
ELSE IF NOT EXISTS(SELECT A.SpalteA FROM Tabelle1 AS A INNER JOIN inserted AS B ON A.SpaltaA = B.SpalteA)
BEGIN
SET IDENTITY_INSERT TabelleNEU ON
INSERT INTO TabelleNEU
(SpalteA
,SpalteE
,SpalteF)
SELECT
SpalteA
,SpalteE
,SpalteF
FROM inserted
SET IDENTITY_INSERT TabelleNEU OFF
END
END