Passo 1: Examine os bancos de dados físicos com código e objetos sobrepostos
Para a proposta deste laboratório iremos assumir que estamos refatorando dois bancos de dados existentes que contém tabelas com definições idênticas. O SQL Server Reporting Services apresenta em sua implementação um cenário real com os bancos de dados criados durante a instalação do produto. São eles os bancos ReportServer e ReportServerTempDB.
Duração estimada: 5 minutos
Identificar objetos com o mesmo nome nos bancos de dados ReportServer e ReportServerTempDB
Abra o SQL Server Management Studio.
No diálogo Connect to Server, na caixa de texto Server name: digite um ponto final (.) e clique em Connect.
No painel Object Explorer, expanda a árvore indo para o ponto final ( .) e expanda o nó Databases. Observe a existência dos bancos de dados ReportServer e ReportServerTempDB.
Clique com o botão direito em ReportServer, e clique em New Query
Na janela de query, execute a seguinte query para identificar os objetos com o mesmo nome nos dois bancos de dados:
SELECT SCHEMA_NAME(schema_id) as SchemaName
,name as ObjectName
,type_desc as ObjectType
FROM ReportServer.sys.objects
WHERE is_ms_shipped = 0
INTERSECT
SELECT SCHEMA_NAME(schema_id) as SchemaName
,name as ObjectName
,type_desc as ObjectType
FROM ReportServerTempDB.sys.objects
WHERE is_ms_shipped = 0;
Os resultados da execução da query devem estar similares a este:
Figura 1 Resultados da query para localizar objetos similares
Utilizando a instrução INTERSECT nós consultamos os objetos de sistema do banco ReportServer assim como do banco ReportServerTempDB e encontramos objetos que são comuns a ambos os bancos de dados. Este foi o ponto de partida utilizado para selecionar os objetos em um projeto qualquer.
NOTA
Em geral se você quiser consolidar projetos para criar projetos compartilhados você terá que se certificar de que a estrutura dos objetos é idêntica. Nós recomendamos que você generalize objetos que possuam schemas idênticos, como colunas, tipos de dados, e assim por diante. Objetos podem ter o mesmo nome e não ser idênticos porque seus schemas podem ser diferentes.
Compartilhe com seus amigos: |