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
Instância Gerenciada de SQL do Azure
Este artigo descreve como definir ou alterar o agrupamento do banco de dados usando o SQL Server Management Studio (SSMS) ou o Transact-SQL.
Se nenhuma ordenação de banco de dados for especificada, será usada a ordenação do servidor.
Recomendações
Você pode encontrar os nomes de ordenação com suporte no Nome de Ordenação do Windows e no Nome de Ordenação do SQL Server ou pode usar a função do sistema sys.fn_helpcollations.
Ao alterar a ordenação do banco de dados, você altera:
Qualquer coluna char, varchar, text, nchar, nvarchar ou ntext nas tabelas do sistema são alteradas para a nova ordenação.
Todos os parâmetros char, varchar, text, nchar, nvarchar ou ntext e valores de retorno escalar para procedimentos armazenados e funções definidas pelo usuário existentes são alterados para a nova ordenação.
Os tipos de dados do sistema char, varchar, text, nchar, nvarchar ou ntext e todos os tipos de dados definidos pelo usuário com base nesses tipos de dados do sistema são alterados para a nova ordenação padrão.
Você pode alterar a ordenação de quaisquer novos objetos criados em um banco de dados de usuário usando a COLLATE cláusula da ALTER DATABASE instrução. Essa instrução não altera a ordenação das colunas em nenhuma tabela existente definida pelo usuário. Estas podem ser alteradas usando a cláusula COLLATE de ALTER TABLE.
Permissões
A criação de um novo banco de dados exige a permissão CREATE DATABASE no banco de dados master ou as permissões CREATE ANY DATABASE ou ALTER ANY DATABASE.
A alteração da ordenação de um banco de dados existente requer a permissão ALTER no banco de dados.
Definir ou alterar a ordenação de banco de dados
Você pode definir ou alterar a ordenação de banco de dados usando o SSMS (SQL Server Management Studio) ou o Transact-SQL (T-SQL).
Você pode especificar a ordenação de um novo banco de dados ou atualizar a ordenação de um banco de dados existente usando o SSMS (SQL Server Management Studio).
No SQL Server Management Studio, abra Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados do SQL Server e expanda-a e depois expanda Bancos de Dados:
- Para um novo banco de dados: clique com o botão direito do mouse em Bancos de dados e selecione Novo Banco de Dados. Se você não desejar a ordenação padrão, selecione a página Opções e selecione uma ordenação na lista suspensa Ordenação.
- Para um banco de dados existente: clique com o botão direito do mouse no banco de dados desejado e selecione Propriedades. Selecione a página Opções e selecione uma ordenação na lista suspensa Ordenação.
Dados após alterar o agrupamento
Importante
Alterar a ordenação de um banco de dados ou de colunas individuais não modifica os dados subjacentes já armazenados em tabelas existentes. A menos que o seu aplicativo manipule explicitamente a conversão de dados e a comparação entre diferentes ordenações, é recomendável que você migre os dados existentes no banco de dados para a nova ordenação. Isso elimina o risco de que os aplicativos modifiquem incorretamente os dados, o que decorreria em possíveis resultados incorretos ou na perda de dados silenciosa.
Quando uma ordenação de banco de dados for alterada, somente as novas tabelas herdarão a nova ordenação de banco de dados por padrão. Há várias alternativas para converter dados existentes para a nova ordenação:
Converta os dados no local. Para converter a ordenação de uma coluna em uma tabela existente, confira Definir ou alterar a ordenação de colunas. Essa operação é fácil de implementar, mas pode se tornar um problema de bloqueio para grandes tabelas e aplicativos ocupados. Veja o exemplo a seguir de uma conversão local da coluna
MyStringpara um novo agrupamento:ALTER TABLE dbo.MyTable ALTER COLUMN MyString VARCHAR(50) COLLATE Latin1_General_100_CI_AI_SC_UTF8;Copie os dados para novas tabelas que usam o novo agrupamento e substitua as tabelas originais no mesmo banco de dados. Crie uma tabela no banco de dados atual que herdará a ordenação de banco de dados, copie os dados entre a tabela antiga e a nova tabela, remova a tabela original e renomeie a nova tabela com o nome da tabela original. Esta é uma operação mais rápida do que uma conversão no local, mas pode se tornar um desafio ao lidar com esquemas complexos que têm dependências, como restrições de chave estrangeira, restrições de chave primária e gatilhos. Ela também exigiria uma sincronização de dados final entre a nova tabela e a original antes do limiar final se os dados continuassem sendo alterados pelos aplicativos. Confira o seguinte exemplo de uma conversão "copiar e substituir" da coluna
MyStringem uma nova ordenação:CREATE TABLE dbo.MyTable2 (MyString VARCHAR(50) COLLATE Latin1_General_100_CI_AI_SC_UTF8); INSERT INTO dbo.MyTable2 SELECT * FROM dbo.MyTable; DROP TABLE dbo.MyTable; EXEC sp_rename 'dbo.MyTable2', 'dbo.MyTable';Copiar dados para um novo banco de dados que usa a nova ordenação e substitua o banco de dados original. Crie um banco de dados usando a nova ordenação e transfira os dados do banco de dados original com ferramentas como os serviços de integração ou o Assistente de Importação/Exportação no SQL Server Management Studio. Essa é uma abordagem mais simples para esquemas complexos. Ela também exigiria uma sincronização de dados final entre o novo banco de dados e o original antes do limiar final se os dados continuassem sendo alterados pelos aplicativos.
Limitações
As ordenações somente Unicode do Windows só podem ser usadas com a cláusula COLLATE para aplicar ordenações aos tipos de dados nchar, nvarchar e ntext em dados no nível da coluna e no nível da expressão. Eles não podem ser usados com a COLLATE cláusula para alterar a ordenação de um banco de dados ou instância de servidor.
Se a ordenação especificada ou a ordenação usada pelo objeto referenciado usar uma página de código sem suporte no Windows, o Mecanismo de Banco de Dados exibirá um erro.
A ordenação em nível de servidor na Instância Gerenciada de SQL do Azure pode ser especificada quando a instância é criada e não pode ser alterada posteriormente. Saiba mais em Definir ou alterar a ordenação do servidor.
Importante
A instrução ALTER DATABASE COLLATE não tem suporte no Banco de Dados SQL do Azure. Especifique ordenação de banco de dados e ordenação de catálogo no momento de CREATE DATABASE.
Conteúdo relacionado
- Suporte a ordenações e Unicode
- sys.fn_helpcollations (Transact-SQL)
- sys.databases (Transact-SQL)
- Nome de ordenação do SQL Server (Transact-SQL)
- Nome de ordenação do Windows (Transact-SQL)
- COLLATE (Transact-SQL)
- Precedência de ordenação
- CREATE TABLE (Transact-SQL)
- CREATE DATABASE
- ALTER TABLE (Transact-SQL)
- ALTER DATABASE (Transact-SQL)