Managed Instance (#12) – Configuração da Collation da instância
Fala Pessoal,
Esse é mais um post da série sobre o Azure SQL Database Managed Instance. Caso ainda não tenha visto, seguem os posts anteriores:
- Azure SQL DB Managed Instance – Introdução
- Managed Instance – Criando minha primeira instância
- Managed Instance – Como se conectar direto do SSMS utilizando uma VPN?
- Managed Instance – Como se conectar através do SSMS de uma VM do Azure?
- Managed Instance (#5) – Quanto custa tudo isso?
- Managed Instance (#6) – Consigo fazer um Join entre tabelas de bases diferentes?
- Managed Instance (#7) – A função getdate() já retorna a data da minha localidade?
- Managed Instance (#8) – Suporte Microsoft em Português
- Managed Instance (#9) – Agora consigo mandar E-mail do SQL Server?
- Managed Instance (#10) – Consigo criar Linked Server?
- Managed Instance (#11) – Agora consigo criar Jobs direto no SSMS?
No post abaixo mostrei como criar nosso primeiro MI, mas em nenhum momento foi possível escolher a collation da nossa instância:
Hoje, 29/11, ainda não é possível alterar a collation da instância que estamos criando no Managed Instance.
A collation utilizada pelo MI é a SQL_Latin1_General_CP1_CI_AS:
Isso é a collation da instância.
Na criação de uma base de dados conseguimos escolher sem problema a Collation que queremos:
Com o Script abaixo eu crio uma base com uma Collation diferente da instância:
1 2 |
--Criando uma database com uma collation específica CREATE DATABASE TeamFabricioLima COLLATE SQL_Latin1_General_CP1_CI_AI |
Vamos conferir as Collations:
1 2 3 4 5 |
-- Database SELECT DATABASEPROPERTYEX('TeamFabricioLima', 'Collation') SQLCollation -- Servidor select SERVERPROPERTY(N'Collation') MICollation |
Resultado:
Isso pode gerar aquele velho problema de erro de Collation quanto comparamos strings de uma tabela temporária com uma tabela da nossa base.
Vamos testar com o Scritp abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
use TeamFabricioLima Create table Cliente(Cod int identity, Nome varchar(50)) insert into Cliente select 'Fabricio Lima' Create table #Cliente2(Cod int identity, Nome varchar(50)) insert into #Cliente2 select 'Fabricio Lima' select * from #Cliente2 A join Cliente B on A.Nome = B.Nome |
Resultado:
Contornamos isso convertendo a collation no Join:
Mas, Porém, Entretanto, Contudo, Todavia…. Na palestra do Borko Novakovic (líder do projeto MI) no Pass Summit 2018, ele disse que está possibilidade de escolher a collation está vindo em breve.
Quando sair, atualizo esse post com ela.
Gostou dessa Dica?
Curta, comente, compartilhe…
Assine meu canal no Youtube , curta minha página no Facebook ou siga nossa página no Instagram para receber Dicas de Leituras, Vídeos e Eventos sobre SQL Server.
Até o próximo post.
Abraços,
Fabrício Lima
Microsoft Data Platform MVP
Consultor e Instrutor SQL Server
Trabalha com SQL Server desde 2006
2 thoughts on “Managed Instance (#12) – Configuração da Collation da instância”