Я бы согласился с @EdHarper, что построение строки и последующее выполнение sp_executesql, вероятно, ваш лучший ответ.
Две вещи, которые следует иметь в виду, которые я не вижу в предыдущих ответах:
1) Возможно, вы уже скопировали данные в таблицы базы данных Master_copy ранее, поэтому вам, вероятно, необходимо удалить данные в целевой таблице перед началом операции копирования.
2) Если у вас есть удостоверение личностистолбцы в таблицах Master_copy (потому что вы использовали один и тот же сценарий Sql для генерации таблиц Master_db и Master_copy, например), тогда вам необходимо убедиться, что вы можете перезаписывать значения идентификаторов (это можно сделать с помощью set identity_insert в команда).
Таким образом, в качестве альтернативы (нет никакого смысла в повторном ответе) и, как вы знаете, имена баз данных, вы можете просто денормализовать этот подход и написать простую хранимую процедуру для каждой таблицы.
Допустим, у вас есть таблица с именем «персона», которую вы можете написать:
create procedure TransferDataPerson
as
delete from Master_copy..Person
set identity_insert Master_copy..Person on
insert into Master_copy..Person
select * from Master_db..Person
... и так далее для каждой таблицы.