2009-12-01 16 views
1

Je ne sais pas vraiment comment expliquer celui-ci. J'ai pris une table, en ai créé une copie avec une colonne spécifique comme varchar au lieu de char. Ensuite, j'ai copié les données d'une table dans la nouvelle. Toutefois, lorsque j'ajoute ensuite une nouvelle valeur par programme à la table, la colonne qui était précédemment char (200) est toujours complétée avec de l'espace jusqu'à 200 caractères. J'ai essayé de faire un cast sur l'insert, un converti, et même RTrim (CAST ([MynCharColumn] As nVarChar)) comme trouvé sur une autre question ici, mais peu importe ce que je fais, la valeur continue à être rembourrée comme si elle était encore un char.La colonne char est convertie en varchar en insérant toujours le rembourrage

+0

Comment l'insérez-vous par programme? Est-ce que vous ajoutez peut-être le rembourrage vous-même? – Bravax

+0

Pouvez-vous poster le code et le schéma de la table? – chadhoc

+0

Quels SGBDR utilisez-vous? Avez-vous vérifié les caractères cachés? Certains caractères peuvent ne pas être visibles lorsque vous regardez la chaîne, mais ne seront pas affectés par RTRIM, surtout si vous utilisez NVARCHAR. –

Répondre

1

Devin sauvage: si vous utilisez une forme d'ORM, le code ORM peut toujours avoir la colonne en tant que char (200) et l'insérer en tant que char. Ou, si vous utilisez une procédure stockée, avez-vous changé le type de données là?

+0

C'était exactement ça. Ma procédure stockée (que quelqu'un d'autre avait écrit) passait toujours la valeur en tant que char (200). J'ai mis à jour cela et le remplissage n'a pas été inséré sur de nouvelles valeurs. Merci! –

+0

Content d'être utile – edosoft