<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tiago de Oliveira</title>
    <description>The latest articles on DEV Community by Tiago de Oliveira (@tiagoilha).</description>
    <link>https://dev.to/tiagoilha</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F481419%2F4a789575-a7b9-4e52-8774-bf0b89f9fd43.jpeg</url>
      <title>DEV Community: Tiago de Oliveira</title>
      <link>https://dev.to/tiagoilha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tiagoilha"/>
    <language>en</language>
    <item>
      <title>Resolvendo problema de incompatibilidade de Collation SQL Server</title>
      <dc:creator>Tiago de Oliveira</dc:creator>
      <pubDate>Fri, 16 Dec 2022 16:07:49 +0000</pubDate>
      <link>https://dev.to/tiagoilha/resolvendo-problema-de-incompatibilidade-de-collation-sql-server-1bm5</link>
      <guid>https://dev.to/tiagoilha/resolvendo-problema-de-incompatibilidade-de-collation-sql-server-1bm5</guid>
      <description>&lt;p&gt;Bom dia pessoal, tudo bem?&lt;/p&gt;

&lt;p&gt;Venho aqui compartilhar, uma situação na qual me deparei durante minhas demandas. Acho válido compartilhar, pois esse problema pode ocorrer com qualquer um.&lt;/p&gt;

&lt;p&gt;Erro:&lt;br&gt;
Toda vez que eu executava uma consulta no banco, eu me deparava com a seguinte mensagem: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Não foi possível resolver o conflito de agrupamento entre "SQL_Latin1_General_CP1_CI_AI" e "Latin1_General_CI_AS" na operação equal to.&amp;gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Motivo do erro: &lt;br&gt;
Como a consulta que eu estava tentando executar fazia uso de tabelas temporárias, a mesma possuia uma Colletion diferente da usada na base de dados. Gerando o erro apresentado acima.&lt;/p&gt;

&lt;p&gt;Observação:&lt;br&gt;
Quando se faz uso de tabelas temporárias o sql server armazena a mesma no banco "tempdb", na qual é um banco que compõe o sistema de banco de dados do SQL Server&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Procedimento usado: Alteração da Collation do SQL Server sem rebuildar os bancos que compõem os sistemas de de banco de dados do SQL Server&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nos passos abaixo eu irei explicar um método na qual a server collation pode ser facilmente alterado através de um parâmetro de inicialização não documentado.&lt;br&gt;
&lt;strong&gt;Como isso não é documentado, eu recomendo usá-lo com cuidado extra e por sua conta e risco.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Esse método usa o parâmetro de inicialização -q ao iniciar o serviço do SQL Server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Passos a seguir:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1.Desanexar todos os bancos de dados do usuário&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BV_E9k_J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pwqwtj9u0f24fr97z16i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BV_E9k_J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pwqwtj9u0f24fr97z16i.png" alt="Desanexar banco" width="880" height="624"&gt;&lt;/a&gt;&lt;br&gt;
2.Faça backup de todos os outros objetos de banco de dados e servidor necessários&lt;br&gt;
3.Parar serviço do SQL Server&lt;br&gt;
4.Inicie o SQL Server Service usando o prompt de comando&lt;/p&gt;

&lt;p&gt;&lt;code&gt;net start "SQL Server (&amp;lt;Instance Name&amp;gt;)" /m /T4022 /T3659 /q"&amp;lt;New Collation Name&amp;gt;"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--r4eKKliq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gq7v0h5kmmeq8r4gwkvb.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--r4eKKliq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gq7v0h5kmmeq8r4gwkvb.PNG" alt="Comando para alteração do Collation" width="659" height="116"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Reiniciar (parar e iniciar) os serviços SQL normalmente sem nenhum parâmetro de inicialização&lt;br&gt;
6.Verifique a alteração no Server Collation&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QurjrQ4_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5rj2v77k5wb748neso1t.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QurjrQ4_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5rj2v77k5wb748neso1t.PNG" alt="Confirmação da alteração" width="471" height="132"&gt;&lt;/a&gt;&lt;br&gt;
7.Anexe os bancos de dados do usuário de volta&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Se você não desanexar os bancos de dados do usuário antes de alterar o agrupamento do servidor, o processo alterará o agrupamento de todos os bancos de dados.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;O sinalizador de rastreamento 3659 permite registrar todos os erros nos logs do servidor SQL&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;O sinalizador de rastreamento 4022 força o SQL Server a ignorar os procedimentos armazenados de inicialização (se houver)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;O parâmetro de inicialização “-m” força o modo de usuário único.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Parâmetro de inicialização -q” reconstrói todos os bancos de dados e objetos para o agrupamento especificado, sem reinstalar a instância ou reconstruir os bancos de dados do sistema.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Caso queira saber mais sobre logs: &lt;a href="https://imasters.com.br/banco-de-dados/consultando-o-log-de-erro-do-sql-server-usando-t-sql-2"&gt;https://imasters.com.br/banco-de-dados/consultando-o-log-de-erro-do-sql-server-usando-t-sql-2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Referência: &lt;a href="https://www.sanssql.com/2013/10/change-sql-server-collation-without.html"&gt;https://www.sanssql.com/2013/10/change-sql-server-collation-without.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>sql</category>
      <category>sqlserver</category>
      <category>database</category>
    </item>
  </channel>
</rss>
