none
Cadastro duplicado RRS feed

  • Pergunta

  • Preciso checar o lancamento duplicado de nomes. Qdo apresentam documento eu consigo gerenciar isso mas muitas vezes eu so tenho o nome (que pode ser digitado de qq jeito), data de nascimento e nome da mae.

    Queria que o sistema conseguisse identificar como sendo o mesmo nome o "Jose Matos" e "Jose Mattos", ou qdo coloca um espaco a mais entre os nomes ou qdo se acrescenta um sobrenome (ex: "Maria da Silva" e "Maria da Silva de Oliveira").

    Eu tava vendo o Soundex mas nesse caso nao deu muito certo. Sera que existe alguma funcao no SQL que possa fazer isso? Ou alguma dica pra montar uma trigger ?

    Obrigada


    Autor
    • Tipo Alterado Gustavo Maia Aguiar terça-feira, 26 de outubro de 2010 11:09 É uma dúvida e não uma discussão
    segunda-feira, 25 de outubro de 2010 19:57

Respostas

  • Autor,

    Tem uma forma de você resolver seu problema usando o Full Text. Segue abaixo um exemplo para você adaptar à sua necessidade:

     

    CREATE TABLE AAA (A INT PRIMARY KEY IDENTITY(1,1), B VARCHAR(100))
    GO

    EXEC SP_FULLTEXT_DATABASE 'ENABLE'
    GO

    CREATE UNIQUE INDEX LXAAA ON AAA(A)
    GO

    EXEC SP_FULLTEXT_CATALOG 'TESTE', 'CREATE'
    GO

    EXEC SP_FULLTEXT_TABLE 'AAA', 'CREATE', 'TESTE', 'LXAAA'
    GO

    EXEC SP_FULLTEXT_COLUMN 'AAA', 'B', 'ADD'
    GO

    EXEC SP_FULLTEXT_TABLE 'AAA', 'START_FULL'
    GO

    EXEC SP_FULLTEXT_TABLE 'AAA', 'START_CHANGE_TRACKING'
    GO

    EXEC SP_FULLTEXT_TABLE 'AAA', 'START_BACKGROUND_UPDATEINDEX'
    GO

     

    INSERT INTO AAA VALUES ('MARIA DA SILVA')
    INSERT INTO AAA VALUES ('MARIA DA  SILVA')
    INSERT INTO AAA VALUES ('JOSE DE MATTOS')
    INSERT INTO AAA VALUES ('JOSE DE MATOS')

     

    Exemplo de execução: SELECT * FROM AAA WHERE FREETEXT (B, 'JOSE DE MATOS')

     

    Abraço,


    Marco Antônio Pinheiro / MCTS - Database Developer 2008 http://marcoantoniopinheiro.blogspot.com [Se o post foi útil, não esqueça de marcá-lo. Obrigado!!!]
    • Sugerido como Resposta Gustavo Maia Aguiar terça-feira, 26 de outubro de 2010 11:09
    • Marcado como Resposta Eder Costa quarta-feira, 15 de dezembro de 2010 17:44
    segunda-feira, 25 de outubro de 2010 20:42
  • Autor,

    Concordo com o amigo Marco... o Fulltext deverá te ajudar....

    este artigo deverá te ajudar

    http://www.developer.com/db/article.php/3446891/Understanding-SQL-Server-Full-Text-Indexing.htm

    Att,
    Marcelo Fernandes


    Não Perca o Worldwide Online TechDay 2010

    Um evento gratuito com grandes personalidades (Buck Woody, Chad Miller, Steve Jones, Fabricio Catae e muito mais...

    Eu vou falar sobre particionamento de tabelas registre-se

    Acesse o site do evento http://www.online.techday.net.br

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    • Sugerido como Resposta Gustavo Maia Aguiar terça-feira, 26 de outubro de 2010 11:09
    • Marcado como Resposta Eder Costa quarta-feira, 15 de dezembro de 2010 17:44
    segunda-feira, 25 de outubro de 2010 21:20
    Moderador
  • Faça uma verificação, por favor. Há um tempo atras tive um problema com full text que era problema de configuração do perfil da conta de serviço.

    Nos serviços do windows localize os serviços: SQL Server e o SQL Full Text. Vá nas propriedades dos dois. Verifique na aba "Logon" se a forma de logon dos dois está a mesma. Tive problemas com isso uma vez, onde deixando as duas iguais resolveu.

    Att.,


    Marco Antônio Pinheiro / MCTS - Database Developer 2008 http://marcoantoniopinheiro.blogspot.com Se o post foi útil, não esqueça de marcá-lo.
    • Marcado como Resposta Eder Costa quarta-feira, 15 de dezembro de 2010 17:44
    sexta-feira, 29 de outubro de 2010 12:37

Todas as Respostas

  • Autor,

    Tem uma forma de você resolver seu problema usando o Full Text. Segue abaixo um exemplo para você adaptar à sua necessidade:

     

    CREATE TABLE AAA (A INT PRIMARY KEY IDENTITY(1,1), B VARCHAR(100))
    GO

    EXEC SP_FULLTEXT_DATABASE 'ENABLE'
    GO

    CREATE UNIQUE INDEX LXAAA ON AAA(A)
    GO

    EXEC SP_FULLTEXT_CATALOG 'TESTE', 'CREATE'
    GO

    EXEC SP_FULLTEXT_TABLE 'AAA', 'CREATE', 'TESTE', 'LXAAA'
    GO

    EXEC SP_FULLTEXT_COLUMN 'AAA', 'B', 'ADD'
    GO

    EXEC SP_FULLTEXT_TABLE 'AAA', 'START_FULL'
    GO

    EXEC SP_FULLTEXT_TABLE 'AAA', 'START_CHANGE_TRACKING'
    GO

    EXEC SP_FULLTEXT_TABLE 'AAA', 'START_BACKGROUND_UPDATEINDEX'
    GO

     

    INSERT INTO AAA VALUES ('MARIA DA SILVA')
    INSERT INTO AAA VALUES ('MARIA DA  SILVA')
    INSERT INTO AAA VALUES ('JOSE DE MATTOS')
    INSERT INTO AAA VALUES ('JOSE DE MATOS')

     

    Exemplo de execução: SELECT * FROM AAA WHERE FREETEXT (B, 'JOSE DE MATOS')

     

    Abraço,


    Marco Antônio Pinheiro / MCTS - Database Developer 2008 http://marcoantoniopinheiro.blogspot.com [Se o post foi útil, não esqueça de marcá-lo. Obrigado!!!]
    • Sugerido como Resposta Gustavo Maia Aguiar terça-feira, 26 de outubro de 2010 11:09
    • Marcado como Resposta Eder Costa quarta-feira, 15 de dezembro de 2010 17:44
    segunda-feira, 25 de outubro de 2010 20:42
  • Autor,

    Concordo com o amigo Marco... o Fulltext deverá te ajudar....

    este artigo deverá te ajudar

    http://www.developer.com/db/article.php/3446891/Understanding-SQL-Server-Full-Text-Indexing.htm

    Att,
    Marcelo Fernandes


    Não Perca o Worldwide Online TechDay 2010

    Um evento gratuito com grandes personalidades (Buck Woody, Chad Miller, Steve Jones, Fabricio Catae e muito mais...

    Eu vou falar sobre particionamento de tabelas registre-se

    Acesse o site do evento http://www.online.techday.net.br

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    • Sugerido como Resposta Gustavo Maia Aguiar terça-feira, 26 de outubro de 2010 11:09
    • Marcado como Resposta Eder Costa quarta-feira, 15 de dezembro de 2010 17:44
    segunda-feira, 25 de outubro de 2010 21:20
    Moderador
  • Mandei executar o exemplo mas deu o seguinte erro:

    Search on full-text catalog 'TESTE' for database ID 26, table ID 50815243 with search condition 'JOSE' failed with unknown result (8004110a).


    Autor
    quinta-feira, 28 de outubro de 2010 10:21
  • Faça uma verificação, por favor. Há um tempo atras tive um problema com full text que era problema de configuração do perfil da conta de serviço.

    Nos serviços do windows localize os serviços: SQL Server e o SQL Full Text. Vá nas propriedades dos dois. Verifique na aba "Logon" se a forma de logon dos dois está a mesma. Tive problemas com isso uma vez, onde deixando as duas iguais resolveu.

    Att.,


    Marco Antônio Pinheiro / MCTS - Database Developer 2008 http://marcoantoniopinheiro.blogspot.com Se o post foi útil, não esqueça de marcá-lo.
    • Marcado como Resposta Eder Costa quarta-feira, 15 de dezembro de 2010 17:44
    sexta-feira, 29 de outubro de 2010 12:37