Usuário com melhor resposta
SQL SERVER INDICE

Pergunta
-
Tenho um campo varchar(200)
quero criar um indice não unico com apenas os primeiros 50 caracteres
é possível?
- Tipo Alterado Roberson Ferreira _Moderator terça-feira, 21 de agosto de 2012 14:18
Respostas
-
Bom Dia,
Qual seria o propósito de indexar os 50 primeiros caractéres ? 50 caractéres é uma largura significativa para um índice e aumentará as chances dele ser ignorado.
[ ]s,
Gustavo Maia Aguiar
Blog: http://gustavomaiaaguiar.wordpress.com
Vídeos:http://www.youtube.com/user/gmasqlClassifique as respostas. O seu feedback é imprescindível
- Marcado como Resposta cesarmene terça-feira, 21 de agosto de 2012 16:36
Todas as Respostas
-
Cesarmene,
acredito que isso não seja possível, uma vez que você tem que especificar uma coluna para um índice mas não tem como especificar um "comando" no qual você diria que só quer os primeiros 50 caracteres.
Você precisará criar uma outra coluna que conterá somente estes 50 caracteres. Dependendo da versão do seu SQL você poderá usar uma coluna calculada (computada), conforme segue:
Create Table Tabela (Nome VarChar(100), NomePequeno as (Left(Nome, 10))) Insert Into Tabela Values ('Roberson Ferreira da Silva') Select * From Tabela
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.- Sugerido como Resposta Gustavo Maia Aguiar terça-feira, 21 de agosto de 2012 15:09
-
Bom Dia,
Qual seria o propósito de indexar os 50 primeiros caractéres ? 50 caractéres é uma largura significativa para um índice e aumentará as chances dele ser ignorado.
[ ]s,
Gustavo Maia Aguiar
Blog: http://gustavomaiaaguiar.wordpress.com
Vídeos:http://www.youtube.com/user/gmasqlClassifique as respostas. O seu feedback é imprescindível
- Marcado como Resposta cesarmene terça-feira, 21 de agosto de 2012 16:36
-
-
Boa Noite,
Se você gravar os 60 primeiros e fizer uma pesquisa com base em uma igualdade, então essa implementação pode ser uma boa idéia. Se você gravar os 60 primeiros e fizer uma consulta do tipo LIKE '%AlgoumaCoisa%' então não adiantará nada.
[ ]s,
Gustavo Maia Aguiar
Blog: http://gustavomaiaaguiar.wordpress.com
Vídeos:http://www.youtube.com/user/gmasqlClassifique as respostas. O seu feedback é imprescindível
-
Mas e sua aplicação em algum momento gravar um nome que possua mais de 60 caracteres?
Se isso é realmente impossível de acontecer e se esta coluna não possui nenhum conteúdo com mais de 60 caracteres, você poderia inclusive alterar o tamanho desta coluna, de 200 para 60.
E aí criar o índice sobre ela mesma (com as ressalvas do Gustavo).
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.