Обновление и вставка массового перемещения (SQL Server) - PullRequest
1 голос
/ 31 октября 2011

У меня есть пара баз данных, одна из которых является действующей базой данных, а другая - для тестирования конфигурации этой действующей базы данных. Оба находятся на одном сервере.

У меня есть три таблицы: Пользователи (PK UserId, FK MainGroupId) и Группы (PK GroupId) и GroupMembers (PK GroupMemberId, FK GroupId и UserId).

Таблицы представляют собой одну и ту же схему в обеих базах данных, однако в тестовой базе данных есть набор специальных тестовых пользователей. Группы в основном стабильны, но иногда мы добавляем группы, а иногда мы меняем данные столбцов в группах. GroupMembers тоже самое, но в тестовой базе данных ссылается на тестовых пользователей.

Мне нужно иметь возможность обновлять таблицу групп из живого, чтобы тестировать пользователя программно. Я хочу использовать операцию массового копирования, но для этого мне нужно сначала удалить таблицу групп, что приведет к нарушению ограничения.

Я мог бы скопировать таблицу навалом в фиктивную таблицу, а затем выполнить обработку, вставив новые строки, и обновить существующие строки. Однако у меня проблемы с тем, что существует около 30 таблиц, таких как группы, и я не хочу кодировать все имена столбцов в хранимую процедуру в методе UPDATE SET. Я также хотел бы иметь возможность сделать это навалом.

Администраторы баз данных сомневаются в предоставлении разрешения ALTER TABLE для временного снятия ограничений.

Любые другие предложения?

Ответы [ 2 ]

2 голосов
/ 01 ноября 2011

Поскольку обе базы данных находятся на одном и том же сервере, почему бы не использовать оператор MERGE?

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

выберите для экспорта и импорта. Если вы делаете это в правильном порядке, он должен работать правильно.

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