J'ai une procédure stockée qui insère 650 champs dans une table. L'insertion échoue avec une erreur de troncature.
C'est simple
INSERT INTO
SELECT (a bunch of fields)
FROM (a bunch of tables)
Voici le message d'erreur:
Msg 8152, niveau 16, état 14, procédure DSP_Procedure, ligne 1075 La chaîne ou les données binaires seraient tronquées.
Existe-t-il un moyen rapide d'identifier le champ à l'origine de l'erreur de troncature?
Le fait que l'instruction select à insérer dans la table comporte 650 champs rend difficile d'identifier exactement quel champ est à l'origine de l'erreur de troncature.
Je pense que je peux peut-être commenter des blocs de champs à la fois afin que le SP n'insère que 100 champs à la fois, puis exécuter le SP 6 ou 7 fois jusqu'à ce que je puisse au moins me limiter à un groupe de 100 champs qui contiendra le champ à l'origine de l'erreur de troncature.
Alternativement, je pense que je peux peut-être simplement SELECT INTO
une nouvelle table, puis comparer les longueurs de données de la table avec les longueurs de données de la table cible dans laquelle j'essaie d'insérer dans mon SP pour voir quel champ contient une longueur de champ plus longue que prévu. ..
J'utilise SQL Server 2014.
Des alternatives plus simples?