Queremos escrever um teste que prove que o agrupamento de uma coluna no banco de dados é de fato Latin1_General_CI_AS
. O agrupamento padrão do banco de dados é Latin_General_BIN
.
Portanto, precisamos ter alguma diferença observável entre esses dois bancos de dados, escrever um teste usando comparação/ordenação e afirmar o resultado correto (que deve ser comparado/ordenado por Latin1_General_CI_AS
).
Alguém sabe que tipo de diferença poderíamos observar?
_BIN ordenará no binário (ordem ASCII) de caracteres enquanto CI_AS usará ordem de dicionário com insensibilidade de maiúsculas e minúsculas e sensibilidade de acentos, então BIN tratará "A" e "a" como caracteres diferentes e os ordenará de acordo e classificará o alfabeto nesta ordem.
Ou seja, os caracteres serão classificados por seus valores de código ASCII
Como um teste simples
A tabela de catálogo sys.columns mostra o agrupamento para cada coluna baseada em caracteres.
Quando a coluna é criada, o agrupamento é copiado do banco de dados padrão, a menos que explicitamente declarado. Não é herdado em um sentido de tempo de execução. Portanto, se o agrupamento de banco de dados for alterado, todos os agrupamentos de colunas permanecerão como estão até serem explicitamente alterados.