SQLSERVER : Criando sinônimos para todas as tabelas do banco

Algumas vezes, precisamos um banco de dados secundário, e nele criar “sinonimos” para as tabelas em outro banco, para facilitar este trabalho, este script faz a criação do script pra ser executado no novo db, criando os apontamentos para as tabelas do banco de dados real.

O script gera a lista de comandos para executar a tarefa, podendo ser editado e removida as tabelas desnecessárias conforme sua necessidade.

Comandos:

CREATE SYNONYM MyProduct FOR AdventureWorks2012.Production.Product; GO

Script SQl pra gerar os sinônimos para um banco de dados.


-- //docs.microsoft.com/en-us/sql/t-sql/language-elements/fetch-transact-sql

GO
DECLARE @OldDB varchar(50)
DECLARE @nometabela varchar(50)

SET @OldDB = ‘NFCeHomologacaoDBServer’;

DECLARE tabelas CURSOR FOR
SELECT name FROM sys.tables

OPEN tabelas;
FETCH NEXT from tabelas
INTO @nometabela;
WHILE @@FETCH_STATUS = 0
BEGIN
— This is executed as long as the previous fetch succeeds.
print ‘CREATE SYNONYM ‘ + @nometabela + ‘ FOR ‘ + @OldDB + ‘.dbo.’ + @nometabela;

FETCH NEXT FROM tabelas
INTO @nometabela;
END

CLOSE tabelas;
DEALLOCATE tabelas;