SQL Datensatz in SELECT Anweisung manipullieren
-
Hi,
ich möchte bei MSSQL über einen INSTEAD OF Trigger alle Datensätze, die in eine Tabelle geschrieben werden, verändern. Und zwar gibt es dort eine Spalte, die einen automatisch generierten Wert bekommen soll (in diesem Fall einen Link auf einen im Trigger angelegten Datensatz einer anderen Tabelle). Prinzipiell würde ich das so machen:CREATE TRIGGER [dbo].[TestTrigger] ON [dbo].[Test] INSTEAD OF INSERT AS BEGIN INSERT INTO TblB ...; INSERT INTO Test SELECT * FROM inserted; END
Um jetzt die entsprechende Spalte zu ändern, müsste ich ja entweder in dem SELECT alle Spalten aufzählen, was bei jeder Tabellenänderung auch eine Änderung des Triggers nach sich ziehen würde, oder aber ich bräuchte eine Möglichkeit, den Wert einer einzelnen Spalte in der SELECT-Anweisung zu überschreiben.
Das hier funktioniert leider nicht, da nur eine zusätzliche Spalte angehängt wird:SELECT *, ColA=SCOPE_IDENTITY() FROM inserted