Fernando,
Vou responder suas perguntas por partes:
- é normal o sql atribuir a propriedade de cada campo com o tamanho de varchar (50)?
Sim, quando o assistente não identifica um data type para a coluna, então é definido o padrão para importação como "varchar(50)";
- o assistente ja interpreta a propriedade
dos campos para criar a tabela, inclusive o formato VARCHAR(50) porem na quando executo ele gera erro de Truncate
Bom, como eu disse o assistente determinou o data type padrão, mas ele é um "assistente" que define alternativas baseado em uma pequena amostra de registros. Então existem casos que pode ocorrer o TRUNCATE.
Como você está importando um arquivo, eu recomendo que você crie uma tabela nova (basta escrever o nome no "Destino" e o ícone vai alterar, indicando que será criada a tabela) e então crie às colunas com o data type adequado (se existir dúvidas sobre
o conteúdo de cada coluna, importe como varchar e dentro do SQL e após carregar os dados nesta tabela temporária você modifica para o data type ideal inserindo para a tabela definitiva). Veja na imagem abaixo:

- se o proprio SQL definiu o tamanho
do campo quando leu o arquivo e criou a tabela de acordo com este tamanho ele deveria dar o erro de truncate?
Como disse na resposta anterior, é possível porque ele avalia a "proposta" de data type baseado em uma pequena amostra.
- Pelo assistente consigo definir ignorar o trucante?
Sim, mas apenas caso o Assistente identifique que é possível ocorrer perda de dados deste modo (Ex.: você converter uma coluna texto com o data type "int" - mesmo que todo conteúdo seja numérico, se ele encontrar uma "sujeira" ele vai
habilitar esta opção), então você poderá selecionar uma coluna (ou todas) e definir para o Assistente "Falhar" caso encontre inconsistencia ou "Ignorar", podendo ocorrer perda de dados. Caso contrário, se o Assistente não identificar que
poderá ocorrer perda de dados ele não exibe esta janela, e só poderá exibir caso ocorra falha na importação (em uma 2ª tentativa).
- Para
arquivos grandes como fazer para saber o tamanho do campo quanto esta delimitado por tab?
Se a coluna e delimitada por tab, então o arquivo pode ter um tamanho fixo para cada coluna. Analise o conteúdo do arquivo e verifique este padrão. Caso você não consiga determinar
um padrão para cada coluna então você poderá utilizar o "varchar(max)". Veja o print abaixo:

Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval Ramos
Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
----------------------------------
Se foi resolvido clique "Marcar como resposta"
e se foi útil "Votar como Útil"