Hallo,
ich versuche verzweifelt einen Trigger zu schreiben,
der einen Datensatz einer Tabelle über mehrere Datenbanken bearbeitet.
Der Delete-Trigger funktioniert ohne Probleme, nur beim Insert und Update Trigger bekomme ich von unserem Programm Fehlermeldungen, dass "Inserted" ein ungültiges Objekt wäre. Beim Versuch "Inserted" in eine Variable zu speichern bekomme ich die Fehlermeldung, dass nur ein Ausdruck in die Variable gespeichert werden kann. Nun habe ich Angst, dass ich jede Spalte in einzelne Variablen speichern muss.. ( 89 Spalten )
Vielleicht habt Ihr einen Rat für mich?
ich versuche verzweifelt einen Trigger zu schreiben,
der einen Datensatz einer Tabelle über mehrere Datenbanken bearbeitet.
Der Delete-Trigger funktioniert ohne Probleme, nur beim Insert und Update Trigger bekomme ich von unserem Programm Fehlermeldungen, dass "Inserted" ein ungültiges Objekt wäre. Beim Versuch "Inserted" in eine Variable zu speichern bekomme ich die Fehlermeldung, dass nur ein Ausdruck in die Variable gespeichert werden kann. Nun habe ich Angst, dass ich jede Spalte in einzelne Variablen speichern muss.. ( 89 Spalten )
Vielleicht habt Ihr einen Rat für mich?
Code:
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER TRIGGER [INSERT] ON [dbo].[Mitarbeiter] WITH EXECUTE AS CALLER AFTER INSERT AS BEGIN declare @i int declare @y varchar(max) declare @SQLStr varchar(max) set @i = 1 While @i < 18 Begin set @y = @i; set @SQLStr = ' INSERT INTO [tbl'+@y+'].[dbo].[Mitarbeiter] ( [Suchbegriff], [Anrede], [Firma1], [Firma2], [Name], [Vorname], [Strasse], [Land], [Plz], [Ort], ) SELECT [Suchbegriff], [Anrede], [Firma1], [Firma2], [Name], [Vorname], [Strasse], [Land], [Plz], [Ort], FROM Inserted' exec (@SQLStr) set @i = @i + 1 END END
Comment