Suponho que você esteja tentando importar isso usando uma fonte do Excel na caixa de diálogo SSIS?
Nesse caso, o problema provavelmente é que o SSIS mostra algumas linhas no início de sua planilha quando cria a origem do Excel. Se na coluna [ShortDescription] não notar nada muito grande, o padrão será uma coluna de texto de 255 caracteres.
Portanto, para importar dados de uma coluna que contém linhas com grandes quantidades de dados sem truncamento, existem duas opções:
- Você deve se certificar de que a coluna [ShortDescription] em pelo menos uma das linhas de amostra contém um valor com mais de 255 caracteres. Uma maneira de fazer isso é usando a função REPT(), por exemplo. =REPT('z', 4000), que criará uma string de 4000 da letra 'z'.
- Você deve aumentar o número de linhas amostradas pelo driver Jet Excel para incluir tal linha. Você pode aumentar o número de linhas amostradas aumentando o valor de TypeGuessRows em
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel
(se o seu sistema for x64, emHKEY_LOCAL_MACHINE\SOFTWARE\wow6432node\Microsoft\Jet\4.0\Engines\Excel
)chave de registro.
Você pode ver mais informações nestes dois links:
- http://waxtadpole.wordpress.com/2008/04 /28/hello-world/
- http://technet.microsoft.com/en-us/ library/ms141683.aspx
Para explicar melhor, o SSIS cria 3 objetos nos bastidores do assistente, um objeto de fonte de dados do Excel, um objeto de destino de tabela SQL e um operador de fluxo de dados entre eles. O objeto de origem do Excel define os dados de origem e existe independente dos outros dois objetos. Então, quando ele é criado, a amostragem que descrevi é feita e o tamanho da coluna de origem é definido. Portanto, quando o operador de fluxo de dados é executado e tenta extrair os dados do Excel para colocar em sua tabela, ele já está analisando uma fonte de dados limitada a 255 caracteres.