Создание новой базы данных из хранимой процедуры - PullRequest
1 голос
/ 21 июля 2010

Из-за увольнения сотрудника мне дали проект, который находится за пределами моей компетенции.

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

Из того, что я обнаружил, кажется, что это выходит за рамки того, что легко может сделать SP.Есть ли какая-либо «лучшая практика» для обработки такого рода программных потоков?

Ответы [ 2 ]

3 голосов
/ 21 июля 2010

Вообще говоря, сценарии SQL - как DML, так и DDL - это то, что вы используете для создания и заполнения базы данных. SQL Server имеет интерфейс командной строки с именем SQLCMD, через который можно запускать эти сценарии - вот ссылка на учебное руководство по MSDN .

Предполагая, что нет никакой настройки для соответствующих таблиц или столбцов, вы можете воспользоваться либо attach / reattach или backup / restore . Это потребует наличия базовой базы данных - никаких данных о клиентах. Затем вы используете любой из упомянутых методов для захвата базы данных как есть. Резервное копирование / восстановление предпочтительнее, поскольку для подключения / повторного подключения требуется, чтобы база данных была отключена. Но пользователи должны быть синхронизированы, прежде чем они смогут получить доступ к базе данных.

0 голосов
/ 21 июля 2010

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

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