Resolvendo o erro: String or binary data would be truncated. tsql
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