Banco de Dados

14 mai, 2019

Managed Instance – Configuração da Collation da instância

100 visualizações
Publicidade

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!