Zum Inhalt wechseln


Foto

SELECT * FROM Inserted mit Spalte "timestamp" und Fehlermeldung


  • Bitte melde dich an um zu Antworten
2 Antworten in diesem Thema

#1 rogman

rogman

    Newbie

  • 1 Beiträge

 

Geschrieben 08. November 2017 - 06:55

Guten Tag allerseits, folgender Code gibt mir den Fehler ...

 

Nachricht 273, Stufe 16, Status 1, Prozedur TR_UPDATE, Zeile 16 [Batchstartzeile 0]
Ein expliziter Wert kann nicht in eine timestamp-Spalte eingefügt werden. Verwenden Sie INSERT mit einer Spaltenliste, um die timestamp-Spalte auszuschließen, oder fügen Sie einen DEFAULT-Wert in die timestamp-Spalte ein.
 

CREATE TRIGGER TR_UPDATE ON tb_Adresse

INSTEAD OF UPDATE

AS

BEGIN

 

-- letzten gültigen Datensatz inaktivieren

UPDATE tb_Adresse SET

       Gültig_Bis = GETDATE(),

       Ist_Gültig = 0

FROM tb_Adresse INNER JOIN Inserted ON tb_Adresse.ID = Inserted.ID

WHERE tb_Adresse.Ist_Gültig=1

;

 

-- neuen Datensatz einfügen

INSERT INTO tb_Adresse

SELECT * FROM Inserted

;

END;

 

 

Wenn ich eine Spaltenliste detailliert aufsetze kommt folgende Fehlermeldung, weil ich wie angegeben die Spalte mit dem "timestamp" auslasse....

Ein Defaultwert gemäss erster Fehlermeldung kann, gemäss meinen Recherchen auf timestamp auch nicht gesetzt werden 

 

Insert mit Tabellenliste: 

SELECT ID, Gültig_Ab,Gültig_Bis,Ist_Gültig,ZHd_Name,Strasse,StrasseZusatz,PLZ,

Ort,Land,Bearbeitet_Durch,KundeID FROM Inserted

 

Nachricht 213, Stufe 16, Status 1, Prozedur TR_UPDATE, Zeile 16 [Batchstartzeile 0]

Der Spaltenname oder die Anzahl der bereitgestellten Werte entspricht nicht der Tabellendefinition.
 
Kann mir da jemand weiter helfen? Bin ein SQL und SSMS newbi.... ;)


#2 MDD

MDD

    Newbie

  • 35 Beiträge

 

Geschrieben 09. November 2017 - 18:24

Hallo

 

Wie schaut dein Insert-Statement aus mit dem der Trigger ausgelöst wird.

 

Kann es sein dass du gar nicht alle Spalten befüllst obwohl das vielleicht nötig wäre und daher der Trigger auf einen Fehler läuft?

Gruß MDD


Wir finden für jede Lösung ein Problem

Man steckt immer in einem Sumpf voll Arbeit, nur die Tiefe ändert sich.


#3 NilsK

NilsK

    Expert Member

  • 12.395 Beiträge

 

Geschrieben 10. November 2017 - 10:26

Moin,

Fragen wir mal in der richtigen Reihenfolge: was willst du denn erreichen?

Gruß, Nils

Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!