Ich versuche, ein Datenaufnahmeproblem zu lösen.So ändern Sie Daten als eingefügt
Es ist eine Anwendung, einige Daten und spuckt es in unserer Datenbank sammelt, aber das Problem ist das Datum auf der Client-Seite modifiziert wurde, ist das Sammeln wie ‚DDD TTMMMJJJJ‘ zu sein:
'Sat 20May2017'
Die Anwendung gehört nicht uns und wir haben keinen Zugriff auf ihren Quellcode. Ich möchte einfach den DDD-Teil von dem Datum vor dem Einfügen löschen, aber das konnte ich nicht erfolgreich durchführen.
Die Tabellenspalte ist definiert als:
SOURCE_DATE DATE NOT NULL
Wie ist, die Einsätze nicht mit:
Fehler bei der Konvertierung, wenn Datum und/oder Uhrzeit aus Zeichenfolge zu konvertieren.
Aber sie wird Arbeit mit dem Format 'TTMMMJJJJ' (Ich habe dies getestet).
Ich habe versucht, einen Auslöser zu erstellen, um das Problem zu lösen, aber nichts, was ich versucht habe, hat funktioniert. Aktuellster Versuch:
CREATE TRIGGER T_FORMAT_DATE
ON MY_TABLE
INSTEAD OF INSERT AS
BEGIN
SET NOCOUNT ON;
INSERT INTO MY_TABLE(SOURCE_DATE)
SELECT RIGHT(SOURCE_DATE, LEN(SOURCE_DATE) - 4)
FROM inserted;
END
Nebenfrage: Gibt es eine Möglichkeit zu wissen, wann/wenn ein Trigger ausgeführt wurde?
Jede Hilfe würde am meisten geschätzt werden.
Wenn die folgenden Antworten nützlich sind, dann akzeptiere oder stimme die Lösung/Antwort ab. –
Ich hatte gehofft, dass jemand mit einer besseren Antwort antworten würde. Ich fühle mich wie meins ist nur ein Workaround, keine echte Lösung. –