Как переписать структуру таблицы и данные из db1 в db2 - PullRequest
0 голосов
/ 17 ноября 2011

Я занимаюсь разработкой Grails-приложения, которое использует несколько баз данных, другие предназначены только для чтения, а 1 является своего рода "основной базой данных". Кроме того, существует несколько сред: dev, qa, prod. qa используется для тестирования релизов и идентичен prod.

Всегда перед тестированием релиза мне нужно перезаписать "основную" базу данных qa на "основную" базу данных prod. У меня нет доступа к серверу, на котором работает экземпляр MS SQL, кроме доступа пользователя SQL.

Мне нужна магия, которая удаляет все в базе данных qa, не удаляя саму базу данных и импортируя все из базы данных prod. Базы данных содержат множество ограничений внешнего ключа.

Как добиться вышеупомянутого?

P.S.

Я сделал это на MySQL, но теперь мы перешли на MS SQL. Мой MySQL-скрипт выглядит примерно так (псевдо):

SET foreign_key_checks = 0;
-- Drop all tables..
SET foreign_key_checks = 1;
-- Import prod-dump to DB..

Ответы [ 2 ]

0 голосов
/ 17 ноября 2011

Я думаю, что инструмент "Сравнение данных xSQL" точно соответствует вашим требованиям. Для доступа к базе данных qa вам потребуется доступ "sa".

0 голосов
/ 17 ноября 2011

Вы не должны делать это в прямом T-SQL.

Вы действительно должны использовать что-то вроде SMO Scripting в .NET для экспорта объектов таким способом. Существует NO чистый способ сделать то, что вы просите, в чистом коде SQL.

Слишком много переменных для учета, если вы планируете просто создавать динамический SQL из системных таблиц, что является единственным способом достичь этого в T-SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...