Files
apitdn/fluig_rag_docs/Plataforma Documentação técnica/Instalação e Atualização/Conversão/Migração e Conversão de Collation (SQL Server).md
T

198 lines
12 KiB
Markdown
Raw Normal View History

2026-05-06 13:35:47 -03:00
---
title: Migração e Conversão de Collation (SQL Server)
source: https://tdn.totvs.com/pages/viewpage.action?pageId=118882384
path: \Plataforma Documentação técnica\Instalação e Atualização\Conversão\Migração e Conversão de Collation (SQL Server).md
---
- 1 [Objetivo](#MigraçãoeConversãodeCollation(SQLServer)-Objetivo)
- 2 [Procedimento de migração e conversão de dados](#MigraçãoeConversãodeCollation(SQLServer)-Procedimentodemigraçãoeconversãodedados)
# Objetivo
---
O objetivo deste guia é indicar um método de migração dos dados de uma base com agrupamento de caracteres (*collation*) diferente do padrão "Latin1\_General\_CI\_AS" necessário para a correta utilização da base Fluig.
# Procedimento de migração e conversão de dados
---
Atenção!
Esta operação deve ocorrer antes da conversão de uma base TOTVS ECM para TOTVS Fluig Plataforma. Mesmo com a alteração do agrupamento padrão, os campos existentes permanecem incorretos, podendo assim, causar comportamentos inesperados na utilização da plataforma.
Acompanhe a seguir o checklist para a conversão.
- Gere um **DUMP** desta base de dados do **TOTVS ECM 3.00**, com toda estrutura de tabelas e campos.
- Para o SGBD **Microsoft SQL Server** utilize o procedimento a seguir:
1. Clique com o botão direito do mouse sobre a base de dados.
2. No menu suspenso escolha a opção **Tarefas > Gerar Scripts...**
3. Clique no botão **Próximo >** para passar a apresentação da Introdução do assistente para **Gerar e Publicar Scripts**.
4. Deixe selecionada a opção para **Gerar script de todo o banco de****dados** e **todos os objetos de banco de dados** e clique no botão **Próximo >**.
5. Na tela seguinte, no grupo **Tipo de Saída** e no grupo abaixo selecione a opção **Salvar** na nova janela de consulta.
6. Clique no botão **Avançado**.
7. Na tela de **Opções de Script Avançadas** altere a opção **Agrupamento de Scripts** para **True** e clique no botão **OK**.
8. Ao retornar a tela **Gerar e Publicar Scripts**clique no botão **Próximo >**.
9. Na etapa a seguir revise as configurações para geração do script da base. Clique no botão **Próximo >**.
10. Torne à janela do **Microsoft SQL Server Management Studio**.
11. Na nova janela aberta com o script, altere as seguintes linhas e proceda com as alterações abaixo citadas:
1. Substituir todas as ocorrências do nome antigo do banco de dados para **fluig**. (Aproximadamente 39 ocorrências).
```
-- antes
CREATE DATABASE [byyouecm_ofi]
-- depois
CREATE DATABASE [fluig]
-- comando
-- replaceAll apenas na palavra byyouecm_ofi
```
2. Substituir no nome do arquivo .**mdf** e do arquivo .**log** para **fluig**, bem como a label dos arquivos.
```
-- antes
ON PRIMARY
( NAME = N'Webdesk300_Data', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\byyouecm_ofi.MDF' , SIZE = 5098688KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%)
LOG ON
( NAME = N'Webdesk300_Log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\byyouecm_ofi_1.LDF' , SIZE = 52352KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%)
-- depois
ON PRIMARY
( NAME = N'Fluig_Data', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\fluig.MDF' , SIZE = 5098688KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%)
LOG ON
( NAME = N'Fluig_Log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\fluig.LDF' , SIZE = 52352KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%)
-- comando
-- replaceAll apenas na palavra Webdesk300
```
3. Substituir a ocorrência da versão do banco de dados para o valor **110**.
```
-- antes
ALTER DATABASE [fluig] SET COMPATIBILITY_LEVEL = 100
-- depois
ALTER DATABASE [fluig] SET COMPATIBILITY_LEVEL = 110
```
4. Substituir a ocorrência do instantâneo de leitura de commit para **ON**.
```
-- antes
ALTER DATABASE [fluig] SET READ_COMMITTED_SNAPSHOT OFF
-- depois
ALTER DATABASE [fluig] SET READ_COMMITTED_SNAPSHOT ON
```
5. Substituir todas as ocorrências do **collation** antigo pelo novo **Latin1\_General\_CI\_AS**. (Aproximadamente 444 ocorrências).
Importante!
Independentemente da **collation** que a base ECM tenha, é necessário converter para '**Latin1\_General\_CI\_AS**', pois é o que o TOTVS Fluig espera como padrão, conforme descrito na documentação [Configuração do banco de dados SQL Server](../../Configuração/Configuração de Banco de Dados/Configuração do banco de dados SQL Server.md).
1. **CI** significa **Case Insensitive**, não diferenciando letras maiúsculas de minúsculas em suas queries.
2. **AS** significa **Accept Signal**, diferenciado acentuação nos campos de texto em suas queries.
```
-- antes
COLLATE SQL_Latin1_General_CP1_CI_AI
-- depois
COLLATE Latin1_General_CI_AS
-- comando
-- replaceAll apenas na palavra SQL_Latin1_General_CP1_CI_AI
```
12. Execute o script por inteiro.
13. Atualize o explorador de objetos do SQL Management Studio.
14. Deverá aparecer o novo banco **fluig**.
- Proceda com a desativação das chaves (*constraints*) nas tabelas da base de dados **fluig**. Para o SGBD Microsoft SQL Server utilize a instrução a seguir:
1. Abra uma janela de Nova Consulta (menu **Arquivo > Novo > Consulta do Mecanismo de Banco de Dados**);.
2. Insira a consulta abaixo e a execute na nova base de dados.
```
DECLARE @TABLENAME VARCHAR(8000)
DECLARE @TABLENAME_HEADER VARCHAR(8000)
DECLARE TNAMES_CURSOR CURSOR FOR
SELECT [name] from [sys].[tables]
OPEN TNAMES_CURSOR
FETCH NEXT FROM TNAMES_CURSOR INTO @TABLENAME
WHILE (@@FETCH_STATUS <> -1)
BEGIN
IF (@@FETCH_STATUS <> -2)
BEGIN
SELECT @TABLENAME_HEADER = 'ALTER TABLE ' + RTRIM(UPPER(@TABLENAME)) + ' NOCHECK CONSTRAINT ALL;'
--Alterar o NOCHECK para CHECK para depois habilitar as constraints
PRINT @TABLENAME_HEADER
END
FETCH NEXT FROM TNAMES_CURSOR INTO @TABLENAME
END
SELECT @TABLENAME_HEADER = '--************* Fim das Tabelas *************--'
PRINT @TABLENAME_HEADER PRINT ' '
DEALLOCATE TNAMES_CURSOR
```
3. Copie o resultado e cole em uma janela de Nova Consulta e execute (na nova base de dados) usando o bando de dados **TOTVS Fluig Plataforma**.
- Exclua o índice **CENTRAL\_TC** que fica na tabela **TAR\_CTRAL**. Para excluir o índice pelo SQL Studio:
1. Abra o **SQL Server Management Studio (SSMS)**.
2. Conecte-se ao servidor de banco de dados.
3. No painel do **Object Explorer**, localize a base de dados onde a tabela está armazenada.
4. Expanda a base de dados e navegue até a tabela chamada **TAL\_CTRAL**.
5. Clique com o botão direito na tabela **TAL\_CTRAL** e selecione a opção **Indexes**.
6. A lista de índices associados à tabela será exibida.
7. Identifique o índice **CENTRAL\_TC**.
8. Clique com o botão direito sobre o índice selecionado e escolha a opção **Delete**.
9. Confirme a exclusão para apagar o índice atrelado à tabela.
- Realize a importação dos dados a partir da base de dados antiga, com um assistente de importação e exportação de dados, por exemplo. Para o SGBD Microsoft SQL Server utilize o procedimento:
1. Clique com o botão direito do mouse sobre a nova base de dados.
2. No menu suspenso selecione a opção **Tarefas > Importar Dados...**
3. Na tela de apresentação do Assistente de Importação e Exportação do SQL Server clique no botão **Avançar >**.
4. No campo **Fonte** de dados selecione a opção **SQL Server Native Client** (ao final é exibido o número da versão, utilize a mesma equivalente à versão do serviço de banco de dados).
5. No campo **Nome** do servidor indique (digite ou selecione na caixa suspensa) o servidor e instância que possui a base de dados anterior (que deverá ser compatibilizada / normalizada).
6. No grupo **Autenticação** utilize o método que permite acesso a todos os dados desta base de dados anterior. É recomendado o uso de um usuário com permissão de **db\_owner**.
7. Selecione ou digite, no campo **Banco de dados**, a base antiga e clique no botão **Avançar >**.
8. Na tela com título (para) **Escolher um Destino** devem vir preenchidos os campos com informações de acesso a esta nova base de dados. Se as informações estiverem incorretas ou incompletas, corrija-as, e clique no botão **Avançar >**.
9. A seguir na tela com título **Especificar Cópia** ou **Consulta de Tabela** selecione a opção **Copiar** dados de uma ou mais tabelas ou exibições e clique no botão **Avançar >**.
10. Na tela de título **Selecionar Tabelas** e **Exibições de Origem**, clique na primeira caixa de seleção que está nos títulos da listagem de **Tabelas e exibições**.
11. Com todos selecionados clique no botão **Editar Mapeamentos...**
12. Na caixa **Configurações de Transferência**marque a caixa de seleção **Habilitar inserção de identidade** e, então, no botão OK.
Atenção!
Não deixe de marcar esta opção para que não ocorram falhas na cópia dos dados.
13. Retornando à janela anterior, **Selecionar Tabelas** e **Exibições de Origem**, clique no botão **Avançar >**.
14. Na tela com título **Revisar Mapeamento** de **Tipo de Dados** clique no botão **Avançar**.
15. Na tela com título **Executar Pacote**marque a caixa de seleção **Executar imediatamente** e clique no botão **Avançar >**.
16. Na tela com título **Concluir Assistente**, após revisar as ações clique no botão **Avançar**.
17. Na tela a seguir de execução das ações ao final deve ser exibida a informação de que a importação foi realizada com sucesso.
18. Execute o *script* para habilitar as *constraints* que foram desativadas no **Passo 02**alterando de **NOCHECK** para **CHECK**.
- Conferir procedimentos para o serviço/instância do SGBD Microsoft SQL Server, descritos na página [Configuração do banco de dados SQL Server](https://tdn.totvs.com/pages/viewpage.action?pageId=73078837), a partir da sessão **Configuração do banco**.
- As configurações de agrupamento de caracteres (*Collate/Collation*) das bases de dados podem ser consultadas utilizando a instrução:
```
SELECT [name] , [is_read_committed_snapshot_on] , [collation_name] , suser_sname([owner_sid]) as 'owner'
FROM [sys].[databases]
WHERE [name] LIKE 'fluig%';
```
IMPORTANTE
- Verificar o nome do proprietário (owner) do novo banco criado. Deverá ser o mesmo usuário a ser informado na instalação do **Fluig.**
- Verificar o repasse das permissões de acesso aos devidos usuários na nova base de dados. Estas podem ter sido perdidas.
- Instalar a **versão 1.5.13 (Última EP)** do **Fluig** e configurar para apontar para esta base de dados (**fluig**).
- Inicializar o serviço **Fluig**, e acompanhar o LOG, para se certificar de que toda a inicialização foi bem sucedida, sem erros graves, como falha na conexão com o SGBD.
- Retornar ao processo de conversão **TOTVS ECM 3.00 para TOTVS Fluig Plataforma** se for este o caso, ou então, realizar as validações desejadas e uso da nova instalação.