title image


Smiley Re: Fragen zu MSSQL instead of Trigger
Hallo Loggy,



zu 1)

meines Wissens sieht der Datensatz in der inserted genau so aus, wie er in der eigentlichen Tabelle ausgesehen hätte. AutoIncrement-Werte etc. müssten also bereits generiert sein. Nachdem's bei mir doch schon recht lang her ist, kann ich's aber nicht mehr mit Sicherheit sagen, daber du kannst's einfach mal versuchen, bzw. einfach mal im Trigger ein SELECT auf die inserted machen, dann siehst du ja, welche Werte drin stehen (wenn das INSERT dann im QueryAnalyzer machst)



zu 2)

Der Trigger weiß das überhaupt nicht, das musst du ihm schon ganz explizit sagen. Dazu verwendest einfach eine ganz gewöhnliche INSERT-Anweisung. Das Problem liegt hier bei dir aber mehr an der Syntax, denke ich.

Welches Feld wohin geschrieben werden soll, wird durch die Insert-Anweisung als solches definiert:

INSERT INTO TabelleX(Feld1, Feld2, Feld3, Feld4 ...)

Select (FeldA, FeldB, @var1, @var2)

From INSERTED



FeldA landet in Feld1, FledB in Feld2 ...

Und da in einem Select ganz einfach auch Variablen verwendet werden können, werden diese eben auch entsprechend rüber geschrieben:

@var1 in Feld3, @var2 in Feld4 ...



Grundsätzlich würde ich in deinem Fall aber von einem InsteadOf-Trigger absehen und einen For-Trigger verwenden, da hast wesentlich weniger Aufwand. Dann brauchst nämlich nur noch aus der inserted-Tabelle den Primärschlüssel auslesen, und auf diesem Wert das entsprechende Update drüber laufen lassen, und das war's.



Ciao, WolfgangE
An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: