quinta-feira, 29 de setembro de 2011

Bulk Insert e BCP / Queryout sem perder acentuação (SQL Server)

Para não perder a acentuação das palavras ao carregar um TXT via BULK INSERT ou ao exportar uma tabela via QUERYOUT, é necessário definir a CODEPAGE/COLLATION.

É simples:

BULK INSERT - Exemplo:
set @cmd = 'bulk insert TABELA from
''' + @FileName + ''' WITH (CODEPAGE = 1252)'
exec(@cmd)


BCP/QUERYOUT - Exemplo:


set @cmd = 'bcp "SELECT * FROM ##atu_conf" queryout ' + @FileName + ' -T -c -C1252 -t, '
EXEC xp_cmdshell @cmd

2 comentários:

Felipe Teixeira disse...

Muito bom, pesquisei no google por "sql server bcp acentuação" e caí no meu próprio blog, com uma solução que eu nem lembrava que já havia feito.

Guilherme Araujo disse...

Esse mundo é mesmo muito maluco cara...