Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do
AzureInstância
Gerenciada de SQL do AzureAzure Synapse Analytics
PDW (Analytics Platform System)
Warehouse no Microsoft Fabric
Banco de dados SQL no Microsoft Fabric
Define uma ordenação de uma coluna de banco de dados ou de tabela ou uma operação de conversão de ordenação quando aplicado a uma expressão de cadeia de caracteres. O nome da ordenação pode ser um nome de ordenação do Windows ou um nome de ordenação SQL. Se ele não for especificado durante a criação do banco de dados, a ordenação padrão da instância do SQL Server será atribuída ao banco de dados. Se ele não for especificado durante a criação da coluna de tabela, a ordenação padrão do banco de dados será atribuída à coluna.
Convenções de sintaxe de Transact-SQL
Sintaxe
COLLATE { <collation_name> | database_default }
<collation_name> ::=
{ Windows_collation_name } | { SQL_collation_name }
Argumentos
collation_name
É o nome da ordenação a ser aplicada à expressão, definição de coluna ou definição de banco de dados. collation_name pode ser apenas um Windows_collation_name ou um SQL_collation_name especificado. collation_name deve ser um valor literal. collation_name não pode ser representado por uma variável ou expressão.
Windows_collation_name é o nome de ordenação de um Nome de Ordenação do Windows.
SQL_collation_name é o nome de ordenação de um Nome de Ordenação do SQL Server.
Observação
No Microsoft Fabric Data Warehouse, a cláusula COLLATE em uma instrução SELECT é irrestrita e pode ser aplicada com ordenações sem suporte. No Microsoft Fabric Data Warehouse, todos os armazéns por padrão são configurados com ordenação CS (diferencia maiúsculas de minúsculas) Latin1_General_100_BIN2_UTF8. Você também pode criar armazéns comLatin1_General_100_CI_AS_KS_WS_SC_UTF8de ordenação de CI (que não diferencia maiúsculas de minúsculas).
No entanto, somente ordenações com suporte podem ser usadas com a cláusula COLLATE nas instruções CREATE TABLE, ALTER TABLE ADD nullable column, SELECT INTOe CREATE TABLE AS SELECT (CTAS).
database_default Faz com que a COLLATE cláusula herde a colação do banco de dados atual.
Comentários
A COLLATE cláusula pode ser especificada em vários níveis. Isso inclui o seguinte:
Criando ou alterando um banco de dados.
Você pode usar a COLLATE cláusula da
CREATE DATABASEinstrução ouALTER DATABASEpara especificar a colação padrão do banco de dados. Também é possível especificar uma ordenação ao criar um banco de dados usando SQL Server Management Studio. Se você não especificar uma ordenação, o banco de dados recebe a ordenação padrão da instância do SQL Server.Observação
As colações exclusivas para Unicode do Windows só podem ser usadas com a COLLATE cláusula para aplicar colações aos tipos de dados nchar, nvarchar e ntext em dados em nível de coluna e expressão; essas não podem ser usadas com a COLLATE cláusula para definir ou alterar a colação de um banco de dados ou instância de servidor.
Criando ou alterando uma coluna de tabela.
Você pode especificar colações para cada coluna de cadeia de caracteres usando a COLLATE cláusula da
CREATE TABLEinstrução ouALTER TABLE. Também é possível especificar uma ordenação ao criar uma tabela usando SQL Server Management Studio. Se você não especificar uma ordenação, a coluna recebe a ordenação padrão do banco de dados.Você também pode usar a
database_defaultopção na COLLATE cláusula para especificar que uma coluna em uma tabela temporária use o padrão de colação do banco de dados de usuário atual para a conexão em vez detempdb.Convertendo a ordenação de uma expressão.
Você pode usar a COLLATE cláusula para aplicar uma expressão de caractere a uma determinada colação. Literais de caracteres e variáveis são atribuídos à ordenação padrão do banco de dados atual. Referências de coluna são atribuídas à ordenação de definição da coluna.
A ordenação de um identificador depende do nível em que ele é definido. Os identificadores de objetos no nível de instância, como logons e nomes de banco de dados, são atribuídos à ordenação padrão da instância. Os identificadores de objetos em um banco de dados, como tabelas, exibições e nomes de coluna, são atribuídos à ordenação padrão do banco de dados. Por exemplo, duas tabelas com nomes diferentes somente no caso podem ser criadas em um banco de dados com ordenação que diferencia maiúsculas de minúsculas, mas podem não ser criadas em um banco de dados com ordenação que não diferencia maiúsculas de minúsculas. Para obter mais informações, consulte Database Identifiers.
Variáveis, rótulos GOTO, procedimentos armazenados temporários e tabelas temporárias podem ser criados quando o contexto de conexão é associado a um banco de dados e, em seguida, referenciado quando o contexto é alternado para outro banco de dados. Os identificadores para variáveis, os rótulos GOTO, os procedimentos armazenados temporários e as tabelas temporárias estão na ordenação padrão da instância de servidor.
A COLLATE cláusula pode ser aplicada apenas aos tipos de dados char, varchar, text, nchar, nvarchar e ntext .
COLLATEusa collate_name para se referir ao nome da colação SQL Server ou da colação Windows a ser aplicada à expressão, definição de coluna ou definição de banco de dados. collation_name pode ser somente um Windows_collation_name ou SQL_collation_name especificado e o parâmetro deve conter um valor literal. collation_name não pode ser representado por uma variável ou expressão.
Geralmente, as ordenações são identificadas por um nome de ordenação, exceto na Instalação. Na Instalação, especifique o designador de ordenação raiz (a localidade da ordenação) para ordenações do Windows e, em seguida, especifique opções de classificação que diferenciam ou não maiúsculas e minúsculas ou caracteres com ou sem acentos.
Você pode executar a função de sistema fn_helpcollations para recuperar uma lista de todos os nomes de ordenações válidos para ordenações do Windows e SQL Server:
SELECT name,
description
FROM fn_helpcollations();
O SQL Server só pode aceitar páginas de código que tenham suporte no sistema operacional subjacente. Quando você executa uma ação que depende de ordenações, a ordenação do SQL Server usada pelo objeto referenciado deve usar uma página de código com suporte no sistema operacional executado no computador. Essas ações podem incluir o seguinte:
- Especificando uma ordenação padrão para um banco de dados ao criar ou alterar o banco de dados.
- Especificando uma ordenação para uma coluna ao criar ou alterar uma tabela.
- Ao restaurar ou anexar um banco de dados, a ordenação padrão do banco de dados e a ordenação de qualquer coluna ou parâmetro char, varchar e text no banco de dados devem ser compatíveis com o sistema operacional.
Observação
Há suporte para conversões de página de código em tipos de dados char e varchar, mas não no tipo de dados text. A perda de dados durante traduções de página de código não é relatada.
Se a ordenação especificada ou a ordenação usada pelo objeto referenciado usar uma página de código não compatível com o Windows, o SQL Server exibirá um erro.
Exemplos
a. Especificar ordenação durante um SELECT
O exemplo a seguir cria uma tabela simples e insere 4 linhas. Depois, o exemplo aplica duas ordenações ao selecionar dados da tabela, demonstrando como Chiapas é classificado de forma diferente.
CREATE TABLE Locations
(
Place VARCHAR (15) NOT NULL
);
GO
INSERT Locations (Place)
VALUES ('Chiapas'),
('Colima'),
('Cinco Rios'),
('California');
GO
--Apply a typical collation
SELECT Place
FROM Locations
ORDER BY Place COLLATE Latin1_General_CS_AS_KS_WS ASC;
GO
-- Apply a Spanish collation
SELECT Place
FROM Locations
ORDER BY Place COLLATE Traditional_Spanish_ci_ai ASC;
GO
-- Using LIKE
SELECT Place FROM Locations
WHERE Place COLLATE Latin1_General_CI_AS LIKE 'C%' ASC;
GO
Aqui estão os resultados da primeira consulta SELECT.
Place
-------------
California
Chiapas
Cinco Rios
Colima
Aqui estão os resultados da segunda consulta SELECT.
Place
-------------
California
Cinco Rios
Colima
Chiapas
Aqui estão os resultados da terceira consulta SELECT.
Place
-------------
Chiapas
Colima
Cinco Rios
California
B. Mais exemplos
Para exemplos adicionais que usam COLLATE, veja CREATE DATABASE e ALTER TABLE.