Fala, pessoal!
No artigo abaixo mostrei como criar nosso primeiro MI, mas em nenhum momento foi possível escolher a collation da nossa instância:
Na data da publicação deste artigo, ainda não era 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 problemas, a Collation que queremos:
Com o script abaixo eu crio uma base com uma Collation diferente da instância:
--Criando uma database com uma collation específica
CREATE DATABASE TeamFabricioLima COLLATE SQL_Latin1_General_CP1_CI_AI
Vamos conferir as Collations:
-- Database
SELECT DATABASEPROPERTYEX('TeamFabricioLima', 'Collation') SQLCollation
-- Servidor
select SERVERPROPERTY(N'Collation') MICollation
Resultado:
Isso pode gerar aquele velho problema de erro de Collation quando comparamos strings de uma tabela temporária com uma tabela da nossa base.
Testaremos com o script abaixo:
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:
Contudo, na palestra do Borko Novakovic (líder do projeto MI) no Pass Summit 2018, ele disse que essa possibilidade de escolher a collation está vindo em breve!
Até o próximo artigo.
Abraços!