J'essaie de résoudre un problème d'ingestion de données.Comment modifier les données comme insérées
Il existe une application qui collecte des données et recrache dans notre base de données, mais le problème est la date de collecte a été modifié sur le côté client pour être comme « DDD jjmmmaaaa »:
'Sat 20May2017'
L'application n'est pas la nôtre, et nous n'avons pas accès à son code source. Je veux simplement supprimer la partie 'DDD' de la date avant son insertion, mais j'ai été incapable de le faire avec succès.
La colonne de table est définie comme:
SOURCE_DATE DATE NOT NULL
Comme il est, les inserts échouent avec:
Échec de la conversion date et/ou le temps de chaîne de caractères.
Mais ils vont travailler avec le format 'jjmmmaaaa' (j'ai testé).
J'ai essayé de créer un déclencheur pour résoudre le problème, mais rien de ce que j'ai essayé n'a fonctionné. La dernière tentative:
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
question subsidiaire: est-il un moyen de savoir quand/si un déclencheur a exécuté?
Toute aide serait grandement appréciée.
si les réponses ci-dessous sont utiles, puis acceptez ou votez pour la solution/réponse. –
J'espérais que quelqu'un allait répondre avec une meilleure réponse. Je me sens comme le mien est juste une solution de contournement, pas une vraie solution. –