CodeForum.chCode ForenSQLThema: MSSQL 2005 - UPDATE Trigger fehlerhaft
Seiten: [1]
AntwortenDrucken
Autor Thema: MSSQL 2005 - UPDATE Trigger fehlerhaft  (Gelesen 2070 mal)
schnurzli
oft hier
*
Offline Offline

Beiträge: 176



« am: 21. September 2007, 13:20:43 »
ZitierenZitat

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)

Code:
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
« Letzte Änderung: 21. September 2007, 13:28:28 von schnurzli » Moderator informieren   Gespeichert
schnurzli
oft hier
*
Offline Offline

Beiträge: 176



« Antworten #1 am: 09. Oktober 2007, 10:52:10 »
ZitierenZitat

ich habe den fehler entdeckt. möchte die lösung hier natürlich euch nicht vorenthalten!

ich hatte die exists anweisung falsch angeordnet. deshalb ist natürlich immer die erste anweisung eingetreten.
ich habs einfach umgedreht und hab die zu kopierende tabelle und nicht die tabelle von der ich kopiere mit einem inner join auf inserted gelegt. schon hats funtioniert...
Moderator informieren   Gespeichert
Seiten: [1]
AntwortenDrucken
CodeForum.chCode ForenSQLThema: MSSQL 2005 - UPDATE Trigger fehlerhaft
Gehe zu:  

 

Partner Sites

Werbung

TinyPortal v1.0.5 beta 1© Bloc