Quantcast
Channel: Mapear dependências de colunas
Viewing all articles
Browse latest Browse all 4

Mapear dependências de colunas

$
0
0

Boa Tarde,

Em relação aos objetos criptografados há pouco o que fazer. Entendo que se estão criptografados, você deve ter o fonte e poderá colocá-los em uma base a parte para avaliar junto com todos os demais objetos. Procurar na legada sys.comments ou usar procedures como sp_depends estão muito longe de uma solução precisa. O script abaixo usa a sys.sql_dependencies e mostra como isso pode ser feito.

use tempdb
go

-- cria duas tabelas
CREATE TABLE T1 (Col1 INT, Col2 INT, Col3 INT, Col4 INT, Col5 INT)
CREATE TABLE T2 (Col1 INT, Col2 INT, Col3 INT, Col4 INT, Col5 INT)
Go

-- Cria uma view para todas as coluna de T1
CREATE VIEW V1 As SELECT Col1, Col2, Col3, Col4, Col5 FROM T1
GO

-- Cria uma view para as colunas Col3
CREATE VIEW V2 As SELECT DISTINCT Col3 FROM T2
GO

-- Cria uma view para as colunas Col1, Col2 e Col3
CREATE VIEW V3 (Col) As SELECT Col1 + Col2 FROM T1 INTERSECT SELECT Col3 FROM T2
Go

-- Cria outras tabelas
CREATE TABLE T3 (Col5 INT, Col6 INT)
CREATE TABLE T4 (Col7 INT, Col8 INT)

-- Mostra as dependências em nível de coluna da tabela T1 e T2
SELECT
 OBJECT_NAME(referenced_major_id) As Tabela, C.name As Coluna,
 OBJECT_NAME(D.object_id) As Objeto
FROM sys.sql_dependencies As D
INNER JOIN sys.columns As C ON
 D.referenced_major_id = C.object_id AND
 D.referenced_minor_id = C.column_id
WHERE referenced_major_id IN (object_id('T1'),object_id('T2'))
ORDER BY Objeto

-- Elimina os objetos
DROP VIEW V1
DROP VIEW V2
DROP VIEW V3

DROP TABLE T1
DROP TABLE T2

Avalie também a possibilidade colocar o SCHEMABINDING nos seus objetos. São ótimos para evitar acidentes em situações como essa.

[ ]s,

Gustavo Maia Aguiar
Blog:http://gustavomaiaaguiar.wordpress.com
Vídeos:http://www.youtube.com/user/gmasql


Classifique as respostas. O seu feedback é imprescindível

Viewing all articles
Browse latest Browse all 4

Latest Images

Trending Articles





Latest Images