2009-05-26 9 views
0

Je fais une importation et convertit des colonnes en d'autres types de données. Pendant l'importation, je vérifie si je peux convertir les valeurs stockées dans les colonnes dans les types de données cibles. Sinon, je mets une valeur par défaut, par ex. Je convertis une chaîne en int et quand je ne peux pas convertir la chaîne, j'insère -1.T-SQL: Comment enregistrer des entrées erronées lors de l'importation

A ce moment, ce serait bien si je pouvais enregistrer les entrées erronées dans une table séparée, par ex. Au lieu d'une chaîne parsable '1234' 'xze' arrive, donc j'ai mis -1 dans la table cible et 'xze' dans la table de journal. Est-ce possible avec (T-) SQL?

Cheers,

Andreas

+0

Combien de lignes sont parlons-nous? Des dizaines ou des milliers dans chaque importation? – gbn

Répondre

2

Ceci est également très facile à faire avec des tâches de flux de données SSIS. Toutes les étapes de conversion ou de recherche de données que vous pourriez essayer ont une sortie "succès" et une sortie "erreur". Vous dirigez simplement toutes les sorties d'erreur vers une transformation "union", et de là dans une table d'erreurs commune. Le résultat de tous les succès vont dans votre tableau "succès". Vous pouvez même ajouter des détails supplémentaires dans la table des erreurs pour vous donner des messages d'erreur clairs. La bonne chose à ce sujet est que vous obtenez toujours des performances élevées, car des tampons entiers se déplacent dans le système. Vous aurez éventuellement des tampons pleins de données valides écrites en bloc dans la table des succès, et de petits tampons remplis d'erreurs seront écrits dans la table des erreurs. Lorsque des erreurs surviennent sur une ligne, cette ligne sera simplement déplacée d'un tampon de lignes à un autre.

+0

oui. Toutefois, si la personne utilise SQL Server 2000, c'est beaucoup plus difficile. – HLGEM

+0

Le message est étiqueté "sqlserver2005". –

0

Si vous avez une table de mise en scène, vous pouvez filtrer les bonnes choses dans la table finale et faire une jointure arrière (EXISTE PAS) pour trouver les ordures pour la table journal

Questions connexes