#sql-server #ssms #sql-scripts
Вопрос:
У нас есть система, которая включает в себя базу данных с десятками таблиц, некоторые из которых содержат изменяющиеся ДАННЫЕ, а некоторые-довольно статичную информацию об управлении.
В настоящее время система работает в нескольких средах, одна из которых является разработкой, а другие служат различным целям (включая «ПРОИЗВОДСТВО»).
В целях безопасности данных между ПРОИЗВОДСТВОМ и любым другим не существует связи для передачи данных, поэтому обновления должны выполняться с использованием файлов.
Есть некоторые таблицы, которые можно полностью скопировать из РАЗРАБОТКИ в ПРОИЗВОДСТВО, но есть и другие таблицы, в которые следует копировать только выбранный набор записей.
Поскольку процесс обновления (например, до ПРОИЗВОДСТВА) будет происходить много раз в будущем, я бы очень хотел написать простой сценарий, который напишет другой сценарий для запуска в целевой среде (например, в ПРОИЗВОДСТВЕ) со всеми необходимыми обновлениями для выбранного набора таблиц (у меня уже есть аналогичный рабочий сценарий для части «ПРОГРАММИРУЕМОСТЬ»).
Я ищу команды SQL Server (через Management Studio), которые я мог бы использовать для создания сценария со всеми записями вставки для обоих случаев (т. Е. Некоторые таблицы без фильтров, а другие с).
Редактировать
Ниже приведены некоторые примеры данных (просто для демонстрации того, что я ищу).
В этом примере пользователи будут иметь доступ к содержимому этой таблицы ко всем записям, относящимся к категории «Общедоступные», категория «Система» будет скрыта для них, хотя части функциональности системы будут регулироваться этой последней категорией.
Всякий раз, когда мы обновляем функциональность системы, нам может потребоваться изменить содержимое одной или нескольких коллекций в категории «Система». Таким образом, было бы лучше, если бы мы могли просто удалить все записи с категорией = «Система» и именем коллекции = «Статус» (в этом примере, конечно) и вставить новый обновленный список, все это, не касаясь категорий, управляемых пользователями («Общедоступный» в примере).
Если, конечно, вы спросите: «Почему бы вам не разделить его на две отдельные таблицы?» Хороший вопрос, и ответ таков: мы просто не можем.
Комментарии:
1. Я думаю, что вы ищете программное обеспечение для управления версиями SQL
2. Привет @Charlieface, нет, я не. Система управления версиями может служить для программирования, но (и здесь я не на 100% уверен, что мои данные актуальны) она не может решить проблему «пристрастности» в случае копирования таблиц.
3. Вы просто создадите сценарий, который загрузит эти таблицы, разместите этот сценарий в системе управления версиями. Затем он может быть загружен на любой сервер, который вы выберете.
4. Как пишет charlieface — если каждое изменение, которое вы вносите в свою базу данных разработки, выполняется с помощью сценария, то вы просто применяете эти сценарии в правильном порядке к своей производственной базе данных. В противном случае вы ищете систему управления версиями для своей базы данных, как также уже отмечалось. Однако рекомендации по инструментам не относятся к теме. Попробуйте для начала поискать «сравнение данных sql server» и «ssdt sql server».
5. Уважаемый @Smor, я искренне ценю ваши усилия по оказанию помощи, но я думаю, что вы выступаете за изменение моего образа мышления вместо того, чтобы отвечать на мои конкретные вопросы. В основе представленного подхода лежит очень много причин, причин, которые я не могу включить в свой пост, поскольку это было бы слишком длинным и не конкретным. Итак, еще раз, если у вас есть знания о доступности запрашиваемых команд, пожалуйста, поделитесь ими здесь. Если нет, я все равно был бы благодарен вам за ваши усилия.