No contexto de uma instalação do MS SQL Server, a configuração inicial do server collation (Agrupamento do servidor, em português), analise as afirmativas a seguir. I. Não é possível criar bancos de dados com um valor do parâmetro Agrupamento diferente daquele adotado na instalação do SQL Server. II. A escolha do Agrupamento pode ter impacto nas comparações entre strings em comandos SQL. III. A escolha do Agrupamento não tem impacto na ordenação (order by) em comandos SQL. Está correto o que se afirma em
- A)II, apenas.
Esta opção sustenta que apenas a afirmativa II está correta, isto é, que o agrupamento interfere nas comparações entre textos, mas não impede a criação de banco com collation diferente nem afeta o ORDER BY. Isso está de acordo com o SQL Server, porque a instância nasce com um collation padrão, mas o banco pode ser criado com outro valor, e a collation define regras de comparação e ordenação de caracteres. Assim, a I é falsa, a II é verdadeira e a III é falsa.
- B)I e II, apenas.
Aqui se afirma que as afirmativas I e II estariam corretas. A parte II procede, pois o collation influencia igualdade, desigualdade, sensibilidade a maiúsculas e acentos nas comparações de strings; porém a I erra ao dizer que não é possível criar banco com collation diverso do da instalação, já que isso pode ser definido no CREATE DATABASE. Como a I é falsa, esta alternativa não se sustenta.
- C)I e III, apenas.
Esta alternativa diz que I e III seriam as corretas. O problema é duplo: a I é incorreta porque o collation padrão da instância não impede a criação de um banco com collation diferente, e a III também é incorreta porque o ORDER BY de colunas textuais depende justamente das regras de ordenação da collation. Logo, a opção falha ao tomar como verdadeiras duas afirmativas que o próprio comportamento do SQL Server desmente.
- D)II e III, apenas.
A opção sustenta que II e III estariam corretas. Só a II está certa, porque a collation realmente altera a forma de comparar strings no SQL Server, inclusive em igualdade e em relações de maior e menor. Já a III está errada, pois a ordenação em ORDER BY de dados textuais é afetada pela collation, que define a sequência de sort e o tratamento de maiúsculas, acentos e caracteres equivalentes.
- E)I, II e III.
Esta alternativa afirma que as três afirmativas seriam verdadeiras. Isso não procede porque a I é falsa: o SQL Server permite criar bancos de dados com collation diferente do definido na instalação da instância, embora o padrão venha desse agrupamento inicial. Além disso, a III também é falsa, pois a collation tem impacto direto na ordenação de strings em ORDER BY.
Gabarito: A
No SQL Server, o server collation é o agrupamento definido na instalação e ele funciona como um “padrão” para o servidor, mas não como uma prisão. Você pode criar bancos de dados com collation diferente do collation do servidor, e até definir collation por coluna em várias situações. Então a afirmativa I está errada. A escolha do collation interfere diretamente em comparações de texto, porque ele define regras de sensibilidade a maiúsculas e minúsculas, acentos, caracteres especiais e até a forma de ordenar textos. Por isso, a afirmativa II está correta: comparar strings em SQL pode mudar conforme o agrupamento adotado. Já a afirmativa III também está errada, porque o collation impacta sim a ordenação dos resultados em ORDER BY quando o campo é textual. Em outras palavras, a lista pode mudar de posição conforme as regras de agrupamento. É o tipo de detalhe que a banca adora cobrar com cara de “pegadinha elegante”. Assim, apenas a II está certa, o que leva ao gabarito A.