Comparar modo de compartilhamento de duas bases via SQL | Ti Responde 0242

No vídeo de hoje, vamos demonstrar em como em uma query fazer a comparação do modo de compartilhamento entre duas bases (como uma base de produção e uma de testes).

A dúvida de hoje, nos perguntaram, por exemplo, que em uma necessidade na base de testes precisaram compartilhar tabelas e depois replicar em produção.

 

Pensando nisso, montamos um exemplo, onde vai dar para comparar com a estrutura das tabelas e replicar a configuração para produção.

 

Segue abaixo o vídeo exemplificando:

E abaixo a query desenvolvida:

/*
Passo 1 - Substituir PROTHEUS_OP_2510 pelo nome do database de produção
Passo 2 - Substituir PROTHEUS_OP_2510_TST pelo nome do database de testes
Passo 3 - Substituir SX2990 pelo que vai validar, por exemplo, SX2010
*/

SELECT 
	SX2PROD.X2_CHAVE   AS TABELA,
	SX2PROD.X2_MODO    AS PROD_MODO,
	SX2PROD.X2_MODOUN  AS PROD_MODOUN,
	SX2PROD.X2_MODOEMP AS PROD_MODOEMP,
	SX2TST.X2_MODO     AS TEST_MODO,
	SX2TST.X2_MODOUN   AS TEST_MODOUN,
	SX2TST.X2_MODOEMP  AS TEST_MODOEMP
FROM
	[PROTHEUS_OP_2510].[dbo].SX2990 SX2PROD
	INNER JOIN [PROTHEUS_OP_2510_TST].[dbo].SX2990 SX2TST ON (
		SX2TST.X2_CHAVE = SX2PROD.X2_CHAVE
		AND (
			SX2TST.X2_MODO != SX2PROD.X2_MODO
			OR
			SX2TST.X2_MODOUN != SX2PROD.X2_MODOUN
			OR
			SX2TST.X2_MODOEMP != SX2PROD.X2_MODOEMP
		)
		AND SX2TST.D_E_L_E_T_ = ' '
	)
WHERE
	SX2PROD.D_E_L_E_T_ = ' '

Bom pessoal, por hoje é só.

 

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação