2010-08-27 8 views
0

La base de données dont je signale le plus souvent n'est pas correctement typée. Presque tous les champs, à l'exception de quelques entiers et datetime, sont des champs CHAR. Cela peut causer des problèmes avec les mises en page SSRS car certains champs ont des tonnes d'espaces de fin.Coulée/Conversion de caractères à Varchars par UDF pour SSRS

Cela provoque des mises en page à être salissant et autres. Je rtrim souvent ces champs dans mes scripts pour éviter cela.

Y a-t-il un impact sur les performances si je crée un fichier UDF général pour l'exécuter automatiquement sur plusieurs champs dans un même script?

Est une fonction RTRIM. CAST, Convert, etc préférable par rapport aux autres?

Répondre

1

je ne ferais pas une fonction pour ce faire, il suffit d'utiliser CONVERT() sur chaque colonne incorrectement tapé dans le résultat, quelque chose comme ceci:

SELECT 
    CONVERT(int,RowInt) AS RowInt 
     ,RTRIM(CONVERT(varchar(15),RowString)) AS RowString 
     ,CONVERT(datetime,RowDatetime) AS RowDatetime 
     ,CONVERT(numeric(10,4),RowNumeric) AS RowNumeric 
    FROM ... 

cette façon, chaque colonne du jeu de résultats a les données appropriées tapez, et SSRS le saura et pourra leur appliquer une mise en forme. Si c'est un vrai problème chronique, et vous trouvez que vous répétez le CONVERT s trop, vous pouvez juste créer quelques vues qui le font pour vous. Il suffit de regarder faire des vues sur les points de vue.