none
Registros não incluidos RRS feed

  • Pergunta

  • Galera tenho 3000 mil registros que preciso incluir em uma determinada tabela, porem não sei quais existem e quais não existem, como posso verificar isso ?

    Obrigado


    SirSmart

    quarta-feira, 26 de fevereiro de 2014 13:59

Respostas

  • Olá SirSmart,

    Você pode usar um SELECT INTO

    SELECT ID, LastName, FirstName, Phone
    INTO PhoneListBBB
    FROM PhoneListAAA A
    WHERE A.ID not in (SELECT ID from PhoneListBBB)
    

    Dependendo da quantidade de registro você pode pensar em substituir o not in por algo como join.

    espero ter ajudado.

    Abraços.

    • Marcado como Resposta Giovani Cr terça-feira, 4 de março de 2014 17:00
    quarta-feira, 26 de fevereiro de 2014 14:24
  • SirSmart,

    Seguindo o mesmo raciocínio do Piratazz, segue outra opção para esta verificação:

    SELECT CD_CAMPO1, NM_CAMPO2
    FROM TB_EXEMPLO1 AS TB1
    WHERE NOT EXISTS(SELECT 1 FROM TB_EXEMPLO2 AS TB2 WHERE TB2.CD_CAMPO1 = TB1.CD_CAMPO1)

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    • Marcado como Resposta Giovani Cr terça-feira, 4 de março de 2014 17:00
    quarta-feira, 26 de fevereiro de 2014 14:38
    Moderador
  • Ola, boa tarde.

    Essa é uma situação que pode ser resolvida com Merge:

    http://msdn.microsoft.com/pt-br/library/bb510625.aspx

    Veja se consegue adaptar seu script.

    http://sqlgo.wordpress.com/2011/04/23/usando-o-comando-merge/

    ;) até mais


    Altieri Pereira http://altieripereira.blogspot.com/

    • Marcado como Resposta Giovani Cr terça-feira, 4 de março de 2014 17:00
    quarta-feira, 26 de fevereiro de 2014 18:02
  • Gente desculpa mas ainda não consegui fazer, pois tenho uma lista de usuários na tabela A que precisam ser verificados se constam na tabela B. Esses usuários não estão no banco eu os recebi via email

    Exemplo:

    Usuario1, Usuario2, Usuario3

    Preciso saber se esses 3 usuários constam na tabela 1 e não constam na tabela 2.

    Como posso fazer ?


    SirSmart

    SirSmart,

    Então você precisa primeiro inserir estes usuários dentro do seu banco de dados.

    Utilize o comando OPENROWSET para carregar os dados do seu arquivo e tenha certeza que o usuário do serviço SQL tem acesso ao diretório onde o arquivo está armazenado.

    Veja um exemplo de OPENROWSET abaixo:

    SELECT TXT.* FROM OPENROWSET( BULK 'C:\Importacao\ArquivoCliente.txt', 
    FORMATFILE = 'C:\Importacao\Formato.fmt') AS TXT;

    O arquivo de formatação (.fmt) deve ser criado de acordo com a versão do SQL Server. Veja um exemplo abaixo:

    9.0
    2
    1  SQLCHAR  0  10 "\t"        1  CD_CLIENTE       Latin1_General_CI_AS
    2  SQLCHAR  0  40 "\r\n"      2  NM_CLIENTE       Latin1_General_CI_AS

    Veja mais informações sobre OPENROWSET / BULK INSERT nos links abaixo:

    http://msdn.microsoft.com/en-us/library/ms190312%28SQL.90%29.aspx

    http://msdn.microsoft.com/en-us/library/ms191516(SQL.90).aspx

    http://msdn.microsoft.com/pt-br/library/ms188365.aspx

    http://msdn.microsoft.com/pt-br/library/ms175915.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    • Marcado como Resposta Giovani Cr terça-feira, 4 de março de 2014 17:00
    quarta-feira, 26 de fevereiro de 2014 18:10
    Moderador

Todas as Respostas

  • Olá SirSmart,

    Você pode usar um SELECT INTO

    SELECT ID, LastName, FirstName, Phone
    INTO PhoneListBBB
    FROM PhoneListAAA A
    WHERE A.ID not in (SELECT ID from PhoneListBBB)
    

    Dependendo da quantidade de registro você pode pensar em substituir o not in por algo como join.

    espero ter ajudado.

    Abraços.

    • Marcado como Resposta Giovani Cr terça-feira, 4 de março de 2014 17:00
    quarta-feira, 26 de fevereiro de 2014 14:24
  • SirSmart,

    Seguindo o mesmo raciocínio do Piratazz, segue outra opção para esta verificação:

    SELECT CD_CAMPO1, NM_CAMPO2
    FROM TB_EXEMPLO1 AS TB1
    WHERE NOT EXISTS(SELECT 1 FROM TB_EXEMPLO2 AS TB2 WHERE TB2.CD_CAMPO1 = TB1.CD_CAMPO1)

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    • Marcado como Resposta Giovani Cr terça-feira, 4 de março de 2014 17:00
    quarta-feira, 26 de fevereiro de 2014 14:38
    Moderador
  • Gente desculpa mas ainda não consegui fazer, pois tenho uma lista de usuários na tabela A que precisam ser verificados se constam na tabela B. Esses usuários não estão no banco eu os recebi via email

    Exemplo:

    Usuario1, Usuario2, Usuario3

    Preciso saber se esses 3 usuários constam na tabela 1 e não constam na tabela 2.

    Como posso fazer ?


    SirSmart

    • Marcado como Resposta Giovani Cr terça-feira, 4 de março de 2014 17:00
    • Não Marcado como Resposta Giovani Cr terça-feira, 4 de março de 2014 17:00
    quarta-feira, 26 de fevereiro de 2014 17:41
  • Ola, boa tarde.

    Essa é uma situação que pode ser resolvida com Merge:

    http://msdn.microsoft.com/pt-br/library/bb510625.aspx

    Veja se consegue adaptar seu script.

    http://sqlgo.wordpress.com/2011/04/23/usando-o-comando-merge/

    ;) até mais


    Altieri Pereira http://altieripereira.blogspot.com/

    • Marcado como Resposta Giovani Cr terça-feira, 4 de março de 2014 17:00
    quarta-feira, 26 de fevereiro de 2014 18:02
  • Gente desculpa mas ainda não consegui fazer, pois tenho uma lista de usuários na tabela A que precisam ser verificados se constam na tabela B. Esses usuários não estão no banco eu os recebi via email

    Exemplo:

    Usuario1, Usuario2, Usuario3

    Preciso saber se esses 3 usuários constam na tabela 1 e não constam na tabela 2.

    Como posso fazer ?


    SirSmart

    SirSmart,

    Então você precisa primeiro inserir estes usuários dentro do seu banco de dados.

    Utilize o comando OPENROWSET para carregar os dados do seu arquivo e tenha certeza que o usuário do serviço SQL tem acesso ao diretório onde o arquivo está armazenado.

    Veja um exemplo de OPENROWSET abaixo:

    SELECT TXT.* FROM OPENROWSET( BULK 'C:\Importacao\ArquivoCliente.txt', 
    FORMATFILE = 'C:\Importacao\Formato.fmt') AS TXT;

    O arquivo de formatação (.fmt) deve ser criado de acordo com a versão do SQL Server. Veja um exemplo abaixo:

    9.0
    2
    1  SQLCHAR  0  10 "\t"        1  CD_CLIENTE       Latin1_General_CI_AS
    2  SQLCHAR  0  40 "\r\n"      2  NM_CLIENTE       Latin1_General_CI_AS

    Veja mais informações sobre OPENROWSET / BULK INSERT nos links abaixo:

    http://msdn.microsoft.com/en-us/library/ms190312%28SQL.90%29.aspx

    http://msdn.microsoft.com/en-us/library/ms191516(SQL.90).aspx

    http://msdn.microsoft.com/pt-br/library/ms188365.aspx

    http://msdn.microsoft.com/pt-br/library/ms175915.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    • Marcado como Resposta Giovani Cr terça-feira, 4 de março de 2014 17:00
    quarta-feira, 26 de fevereiro de 2014 18:10
    Moderador