2010-08-27 1 views
0

База данных, о которой я сообщаю чаще всего, неправильно напечатана. Почти каждое поле, за исключением некоторых целых чисел и времени, представляет собой поля CHAR. Это может вызвать проблемы с макетами SSRS, потому что в некоторых полях имеется множество конечных пробелов.Кастинг/преобразование символов в Varchars UDF для SSRS

Это приводит к тому, что макеты будут грязными и такими. Я часто использую эти поля в своих сценариях, чтобы предотвратить это.

Возникает ли какое-либо влияние на производительность, если я создаю общий UDF для автоматического выполнения этого на нескольких полях в одном скрипте?

Является одной функцией RTRIM. CAST, Convert и т. Д. Предпочтительнее других?

ответ

1

я бы не сделать функцию, чтобы сделать это, просто использовать CONVERT() на каждом неправильно набранный столбце в результате что-то вроде этого:

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 ... 

таким образом, каждый столбец результирующего набора имеет правильную информацию тип, и SSRS это узнает и может применить к ним форматирование.

Если это настоящая хроническая проблема, и вы обнаружите, что слишком много повторяете CONVERT, вы можете просто создать несколько видов, которые сделают это за вас. просто следите за просмотром взглядов на представления.

Смежные вопросы