Histórico da Página
...
| Bloco de código | ||||
|---|---|---|---|---|
| ||||
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 | ||||
|---|---|---|---|---|
| ||||
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); |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas