Hallo zusammen,
ich hab ein kleines problem und hoffe ihr könnt mir vielleicht weiterhelfen
Ich bin gerade dabei ein MS CRM anzupassen. Dafür habe ich mehrere neue Attribute angelegt und möchte diese jetzt mit Daten füllen. Dies würde ich gerne mit Hilfe eines Triggers machen.
Ich habe einen Datenbanktrigger für eine Tabelle auf einem MS SQL Server geschrieben. Dieser Trigger soll bei einem Insert Befehl auf eine bestimmt Tabelle ein Feld in einer anderen Tabelle mit einem Wert aktualisieren.
Hier mal mein Code:
Code:
CREATE TRIGGER trigg_kontID_anlegen
ON <Datenbank>
FOR INSERT
AS
DECLARE @highestId int
DECLARE @accIdInserted VARCHAR(255)
DECLARE @idNew int
SELECT @highestId = (SELECT MAX(New_contactid) FROM ContactExtensionBase)
PRINT @highestId
SELECT @accIdInserted = (SELECT ContactId FROM Inserted)
PRINT @accIdInserted
SELECT @accIdInserted = '{'
[email protected] +'}'
PRINT @accIdInserted
SELECT @idNew = @highestId +1
PRINT @idNew
Update ContactExtensionBase SET New_contactid = @idNew WHERE ContactId = (@accIdInserted)
Habe über den QueryAnalyzer die Werte geprüft...das lesen des höchsten Wertes klappt, das ermitteln der AccountId und schreiben in die entsprechende Variable klappt etc....aber er schreibt den Wert nicht in die Tabelle! Ersetze ich aber in der WHERE Klausel die Variable durch einen fixen Wert in der Form wie er auch in der DB vorkommt dann klappt es...hat jemand ne Idee woran das liegen könnte? Wäre super weiß langsam net mehr weiter...
Hoffe ist einigermaßen verständlich geschildert das Problem
schon mal danke im Voraus