Как разделить скрипт .sql на несколько файлов? - PullRequest
4 голосов
/ 13 мая 2009

Я использую DatabasePublishingWizard для генерации большого скрипта создания, содержащего как данные, так и схему. Файл, который он создает, является огромным, поэтому открытие сценария для исправления любых синтаксических ошибок практически невозможно, и машины с объемом менее 4 ГБ испытывают трудности с его запуском! Что мне делать и как мне это делать? Спасибо всем за любую помощь, вы можете предоставить.

Ответы [ 5 ]

4 голосов
/ 13 мая 2009

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

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

sqlcmd -S% 1 -d THRIVEHQ -E -b -i "../Tables/Schema.sql" если% ERRORLEVEL% NEQ 0 Перейти к ошибкам

1 голос
/ 21 июля 2010

Попробуйте DBSourceTools.
http://dbsourcetools.codeplex.com
Он будет записывать всю вашу базу данных на диск, по одному файлу на объект базы данных.
Используя цели развертывания, вы можете заново создать любую базу данных из файла.
Он специально разработан, чтобы помочь разработчикам получить контроль над своими базами данных.

1 голос
/ 13 мая 2009

Просто хочу добавить к комментарию Кевина. Разбивая сценарии на отдельные файлы, ТО напишите сценарий, чтобы все файлы были расположены в порядке выполнения.

При выгрузке большой базы данных, которая имеет много взаимозависимостей, так как один большой файл не принесет вам большой пользы, так как в большинстве случаев скрипт не будет выполняться без ошибок. В моем мире я использую соглашение об именах, которое помогает мне быстро увидеть, какие в этом случае представления зависят от других представлений. Например, если у меня есть представление, которое просто создает дамп данных, я бы использовал что-то вроде этого v_VIEW_NAME_ORIGINATING-TABLE_Dump, то я бы изменил суффикс на что-то вроде _weekly или _weekly_Summary для представлений, которые получены из основной таблицы дампа ,

Я усвоил урок много лет назад и с тех пор следую этой схеме именования во всех моих базах данных.

0 голосов
/ 13 мая 2009

Я бы сделал это пошагово.

Генерация всех ваших таблиц и представлений в виде 1 скрипта.

Создайте все свои хранимые процедуры и гранты как 1 скрипт.

Используйте DTS или SSIS для переноса ваших данных.

Всего этого можно достичь с помощью MS SQL Server Management Studio.

0 голосов
/ 13 мая 2009

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

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