Eai, SQLaters! Bom, tentei fazer algo tipo Youtuber. Mas não deu muito certo. Mas vamos direto
ao assunto. Esses dias eu tava executando uma store procedure e apareceu esse erro.
String or binary data would be truncated
Resolvi colocar em vermelho, por que me encheu muito a paciência. No entanto é um erro bobo. Quando você resolve rodar o seguinte comando abaixo:
INSERT INTO TABLEX1
SELECT
*
FROM TABLEX2
E aparece o erro. E mesmo sendo detalhista,
INSERT INTO TABLEX1 ( CAMPO1, CAMPO2, CAMPO3, (…) )
SELECT
CAMPO1,
CAMPO2,
CAMPO3,
(…)
FROM TABLEX2
E continua aparecendo o bendito erro. Decidi que era hora de mudar a estratégia.
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = ‘TABLEX1’
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = ‘TABLEX2’
Coloquei a estrutura delas no excel. Pois minha vista estava embaçando e comparei e para minha supresa. Era o tamanho dos campos que não estavam exatamente o mesmo tamanho. Olhe abaixo.
EMPRESA | 2 | EMPRESA | 2 | OK | ||
EMISSAO | 8 | EMISSAO | 8000 | NO | ||
IDDOC | 8 | IDDOC | 8000 | NO | ||
CCUSTO | 20 | CCUSTO | 20 | OK | ||
MUNPRES | 75 | MUNPRES | 75 | OK | ||
CMUNPR | 5 | CMUNPR | 5 | OK | ||
UFPRE | 2 | UFPRE | 2 | OK | ||
ORIGEM | 1 | ORIGEM | 1 | OK | ||
TIPO | 1 | TIPO | 1 | OK | ||
CGC | 20 | CGC | 20 | OK | ||
INSCR | 20 | INSCR | 20 | OK | ||
NOME | 75 | NOME | 75 | OK | ||
END | 75 | END | 75 | OK | ||
BAIRRO | 40 | BAIRRO | 40 | OK | ||
MUN | 40 | MUN | 40 | OK | ||
EST | 2 | EST | 2 | OK | ||
NMPAIS | 75 | NMPAIS | 75 | OK | ||
CEP | 10 | CEP | 8000 | NO | ||
DDD | 2 | DDD | 2 | OK |
Ou seja, as duas estruturas precisam ser iguais. Eu tava puxando de outro sistema no MySQL e salvando como tabela no SQL Server. Por isso não me atentei a esse detalhe.
Espero que essa dica tenha ajudado.
Receba nossos novos artigos
Baixe nosso novo e-book Como o SQL Pode Mudar Sua Vida Em 04 Passos
Sobre o Autor
0 Comentários