1
resposta

INSERT CURTO

INSERT INTO CLIENTES VALUES
SELECT     A.CPF
        ,NOME
        ,[ENDERECO 1] "ENDEREÇO"
        , BAIRRO
        ,CIDADE
        ,ESTADO
        ,CEP
        ,[DATA DE NASCIMENTO]
        ,IDADE
        ,SEXO
        ,[LIMITE DE CREDITO] "LIMITE DE CRÉDITO"
        ,[VOLUME DE COMPRA]
        ,[PRIMEIRA COMPRA]
        FROM SUCOS_VENDAS.DBO.[TABELA DE CLIENTES] AS A
WHERE A.CPF NOT IN (SELECT CPF FROM CLIENTES)

TENTEI DAR UM INSERT DE OUTRA TABELA DA FORMA CURTA, MAS NÃO DEU CERTO.. ERREI ALGO OU NÃO É POSSÍVEL MESMO?

1 resposta

Olá Anderson, tudo bem?

Quando realizamos um INSERT através de um SELECT em outra tabela, não utilizamos a palavra VALUES:

INSERT INTO CLIENTES VALUES
SELECT   A.CPF
        ,NOME
        ,[ENDERECO 1] "ENDEREÇO"
        , BAIRRO
        ,CIDADE
        ,ESTADO
        ,CEP
        ,[DATA DE NASCIMENTO]
        ,IDADE
        ,SEXO
        ,[LIMITE DE CREDITO] "LIMITE DE CRÉDITO"
        ,[VOLUME DE COMPRA]
        ,[PRIMEIRA COMPRA]
        FROM SUCOS_VENDAS.DBO.[TABELA DE CLIENTES] AS A
WHERE A.CPF NOT IN (SELECT CPF FROM CLIENTES)

Outro ponto Anderson é que você não precisava utilizar alias nesta query, e uma dica é que você sempre informe os campos onde os valores serão inseridos, dessa forma:

INSERT INTO CLIENTES 
([CPF],
[NOME],
[ENDEREÇO],
[BAIRRO],
[CIDADE],
[ESTADO],
[CEP],
[DATA NASCIMENTO],
[IDADE],
[SEXO],
[LIMITE DE CRÉDITO],
[VOLUME DE COMPRA],
[PRIMEIRA COMPRA])
SELECT [CPF],
[NOME],
[ENDERECO 1] AS ENDEREÇO,
[BAIRRO],
[CIDADE],
[ESTADO],
[CEP],
[DATA DE NASCIMENTO],
[IDADE],
[SEXO],
[LIMITE DE CREDITO],
[VOLUME DE COMPRA],
[PRIMEIRA COMPRA]
FROM [SUCOS_VENDAS].[dbo].[TABELA DE CLIENTES] 
    WHERE [CPF] NOT IN ('1471156710','19290992743','2600586709')

Assim você vai ter a certeza de que não esqueceu nenhum campo e que os campos estão na ordem correta.

A sua query após as alterações:

INSERT INTO CLIENTES 
SELECT   CPF
        ,NOME
        ,[ENDERECO 1] "ENDEREÇO"
        , BAIRRO
        ,CIDADE
        ,ESTADO
        ,CEP
        ,[DATA DE NASCIMENTO]
        ,IDADE
        ,SEXO
        ,[LIMITE DE CREDITO] "LIMITE DE CRÉDITO"
        ,[VOLUME DE COMPRA]
        ,[PRIMEIRA COMPRA]
        FROM SUCOS_VENDAS.DBO.[TABELA DE CLIENTES]
WHERE A.CPF NOT IN (SELECT CPF FROM CLIENTES)

Tenta realizar o insert desta forma e depois fala pra gente se deu certo e se funcionou tudo certinho?!

Aguardo o seu retorno!