João está trabalhando com consultas SQL num banco de dados SQL Server, mas está com dificuldade para encontrar o registro de uma pessoa chamada Natália Silva, pois esse nome foi gravado diversas vezes, ora com acento e ora sem acento. A cláusula que permite, em diferentes comandos, estabelecer as regras de tratamento para ordenação e comparação em casos assim é denominada:
- A)COLLATE;
Correta: COLLATE é a clausula do SQL Server usada para definir regras de comparacao e ordenacao de textos, como sensibilidade a acentos e maiusculas.
- B)FULL TEXT;
Errada: FULL TEXT serve para busca textual avançada, nao para definir regras de collation em comparacao e ordenacao.
- C)LANGUAGE;
Errada: LANGUAGE define idioma em alguns contextos, mas nao é a clausula usada para ajustar regras de ordenacao e comparacao de strings.
- D)LATIN_CI_AS;
Errada: Latin_CI_AS é um exemplo de collation, ou seja, um nome de conjunto de regras, nao a clausula pedida no enunciado.
- E)LIKE.
Errada: LIKE é operador de comparacao por padrao, usado em buscas com curingas, nao para configurar tratamento de acentos ou ordenacao.
Gabarito: A
Quando voce trabalha com SQL Server e encontra dados escritos com acento ou sem acento, entra em cena a ideia de collation, que define como o banco vai comparar e ordenar textos. Em outras palavras, ele diz se 'Natalia' e 'Natália' serao tratados como iguais ou diferentes, e isso pode mudar bastante o resultado de uma consulta. A clausula usada para definir ou aplicar essas regras em comandos SQL é COLLATE. Ela permite ajustar a comparacao e a ordenacao de strings em uma consulta especifica, sem precisar alterar toda a configuracao do banco. No SQL Server, isso é muito comum quando voce quer controlar sensibilidade a maiusculas/minusculas e a acentos. E por que isso resolve o caso da questao? Porque o problema nao é de busca por padrao nem de idioma, mas de criterio de comparacao textual. Se o nome foi gravado com e sem acento, voce precisa de uma regra de collation que trate essas variacoes do jeito desejado. Por isso, a alternativa A está correta. Um detalhe importante: nomes como Latin1_General_CI_AS representam uma collation especifica, isto é, um conjunto de regras, mas nao sao a clausula pedida. A palavra-chave que voce usa no comando é COLLATE, e ela é a ferramenta pratica para ajustar essa comparacao.