2015-01-06 4 views
-1

У меня есть две базы данных клиентов, обе имеют одинаковую структуру. Мне нужно переместить некоторых клиентов (customerID) и их соответствующую информацию из одной базы данных в нашу тестовую базу данных, так как есть несколько таблиц (с ограничением), как это сделать? Нужно ли сначала удалить все ограничения в таблицах в целевой базе данных? Есть ли руководство или образец сценария на этой работе?Переместить подмножество данных между базами данных SQL

ответ

1

Если вы делаете это в правильном порядке, нет необходимости отбрасывать контуры. Сначала создавайте таблицы «листа», которые не имеют зависимостей, и прокладывайте себе путь по всем таблицам в этом вопросе.

Вы можете сделать что-то вроде:

INSERT INTO Destinationdb.owner.table 
Select * From SourceDB.owner.table 

Если у вас есть поля идентичности в любой из таблиц, перед вставкой запуска

SET IDENTITY_INSERT TABLE ON 

и после ВСТАВИТЬ пробега

SET IDENTITY_INSERT TABLE OFF 

Редактировать: Одна вещь, которую я забыл. Если у вас есть ограничения, вы не можете TRUNCATE таблицы, поэтому, если вы оставите ограничения, вам придется запускать инструкции DELETE, чтобы сначала очистить таблицы назначения. Если у вас много данных, это может стать нецелесообразным, и в этом случае вы захотите выполнить сценарий из-за ограничений, удалить их, обрезать данные (а не удалять, поскольку они сохраняются при транзакциях), скопировать данные, затем запустить сценарий для повторного включения всех ограничений.

HTH

+0

Thanks Jeremy. Я думал начать с родительской таблицы вместо таблицы листьев. Мне нужно связать эти два сервера базы данных, прежде чем запускать инструкцию INSERT INTO? Кроме того, он не должен TRUNCATE a dest. table, так как я просто вставляю больше строк в существующую таблицу? – Bekka28

+0

@ Bekka28, если отдельные серверы, то да, они должны быть связаны. Если нет, не нужно связывать, просто выполните запрос кросс-базы. Что касается усечения, если вам нужна чистая копия данных prod, тогда вам нужно, иначе это не имеет значения, если другие ограничения не будут нарушены. – Jeremy

Смежные вопросы