Este documento detalha como será aplicado a migração dos tipos de dados text, ntext e image nas colunas no banco de dados, macados como obsoletos pela Microsoft e que serão removidos em versões futuras do SQL Server.
Mais informações técnicas a respeito destes tipos de dados descontinuados no site do fabricante: https://learn.microsoft.com/pt-br/sql/t-sql/data-types/ntext-text-and-image-transact-sql?view=sql-server-ver16 |
A partir da versão 12.1.2510 o RM.Atualizador irá modificar as colunas das tabelas que utilzam os tipos de dados text, ntext e image para varchar(max), nvarchar(max) e varbinary(max) respectivamente.
A migração será realizada através de uma action que será apresentada na última etapa no passo de execução do RM Atualizador.
Durante a atualização a action irá registrar o log de conversão dos tipos dos dados em uma tabela interna do sistema, detalhando em caso de falha qual foi o motivo da falha.
Como ainda temos produtos que utiliazm executáveis Delphi, algumas tabelas não serão migradas neste momento,
Para visualizar quais colunas serão migradas execute a consulta abaixo:
SELECT SCHEMA_NAME(C.SCHEMA_ID) ESQUEMA,
OBJECT_NAME(A.OBJECT_ID) TABELA, A.NAME COLUNA, B.NAME TIPO,
CASE WHEN B.NAME = 'IMAGE' THEN 'VARBINARY(MAX)'
WHEN B.NAME = 'NTEXT' THEN 'NVARCHAR(MAX)'
WHEN B.NAME = 'TEXT' THEN 'VARCHAR(MAX)'
END NOVOTIPO,
CASE WHEN B.IS_NULLABLE = 0 THEN 'NOT NULL' ELSE '' END PERMITENULO
FROM SYS.COLUMNS A JOIN SYS.TYPES B
ON A.SYSTEM_TYPE_ID = B.SYSTEM_TYPE_ID
JOIN SYS.TABLES C ON C.OBJECT_ID = A.OBJECT_ID
AND SCHEMA_NAME(C.SCHEMA_ID) IN ('DBO','TOTVSAUDIT')
AND OBJECT_NAME(A.OBJECT_ID) NOT IN (SELECT * FROM ( VALUES ('DHISTITEM'),('DHISTLAF'),('DHISTNATUREZA'),('DLDC'),('DNORMAREFERENCIADA'),
('DPERIODO'),('DRELATORIO'),('GCONSSQL'),('GFORMULA'),('RCAMREL'),('RRELAT'),('TPAR'),('TPRDHISTORICO'),('GFILTROS'),
('GIMAGEM'),('GJOBLOG'),('GJOBQUEUE'),('GJSJOBS'),('GJSLOGS'),('GJSPARAMETERS'),('GLBCONCEITOSIMPORTACAO'),('GMAILFILA'),
('GMAILSEND'),('GMAILSENDATTACH'),('GPARTSUSRPARTPARAM'),('GUSRPAR'),('GVALDEFAULT'),('RIMGREL'),('RRELTIP') ) LISTAEXCLUDE (TABELAS))
AND OBJECT_NAME(A.OBJECT_ID) COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI IN ( SELECT TABELA COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI FROM GDIC (NOLOCK))
AND B.NAME IN ('TEXT', 'NTEXT', 'IMAGE')
ORDER BY OBJECT_NAME(A.OBJECT_ID), A.NAME |
No RM Atualizador a migração será apresentada conforme a imagem abaixo e o usuário poderá escolher as tabelas que serão migradas.
