Páginas filhas
  • PROCESSO DE MIGRAÇÃO NIMBVS PARA T-CLOUD (SQL SERVER)

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
languagesql
themeEclipse
DECLARE @name NVARCHAR(256)
DECLARE @typedesc NVARCHAR(256)
DECLARE @sql NVARCHAR(MAX)

-- Cursor para selecionar todos os objetos do banco de dados
DECLARE object_cursor CURSOR FOR
SELECT d.name, d.type_desc
FROM sys.objects d
WHERE d.type IN ('U', 'V', 'P', 'FN', 'IF', 'TF','SO')
order by d.type_desc, d.name

/*
 U: Tabelas 
 V: Views
 P: Procedures 
 FN: Funções escalares
 IF: Funções de tabela inline
 TF: Funções de tabela
 SO: Sequencias
*/

OPEN object_cursor
FETCH NEXT FROM object_cursor INTO @name, @typedesc

WHILE @@FETCH_STATUS = 0
BEGIN
    -- Monta o comando ALTER SCHEMA
    SET @sql = 'ALTER SCHEMA MULTICULTIVO TRANSFER dbo.' + QUOTENAME(@name)
    
	-- Mostra o comando
	print 'Instrucao: '+@sql+' Tipo objeto: '+ @typedesc
    -- Executa o comando
    EXEC sp_executesql @sql
    
    FETCH NEXT FROM object_cursor INTO @name, @typedesc
END

CLOSE object_cursor
DEALLOCATE object_cursor


Nesta etapa, será necessário percorrer manualmente as Views e Funções para remover as referências ao schema DBO e ao acesso à base de dados SYSDB. A instrução abaixo lista os objetos que contêm uma dessas referências. Nesses casos, as referências precisarão ser removidas e os objetos recompilados manualmente.


Bloco de código
languagesql
themeEclipse

SELECT 
    OBJECT_NAME(m.object_id) AS object_name,
    o.type_desc AS object_type,
    SCHEMA_NAME(o.schema_id) AS schema_name,
    m.definition AS object_definition
FROM 
    sys.sql_modules m
INNER JOIN 
    sys.objects o ON m.object_id = o.object_id
WHERE 
    (UPPER(m.definition) LIKE '%DBO.%' OR UPPER(m.definition) LIKE '%SYSDB.%')   
	AND o.type IN ('FN', 'IF', 'TF', 'V')  
	AND SCHEMA_NAME(o.schema_id) = 'MULTICULTIVO'
	AND  OBJECT_NAME(m.object_id) <> 'fn_diagramobjects'
ORDER BY 
    o.type_desc, 
    OBJECT_NAME(m.object_id);