Импорт сообщений в Outlook Express

Вопрос: Как импортировать сохраненные скрипты в базу данных MS SQL Server?

Ответ: В программе SQL Server Recovery Toolbox предусмотрено два способа сохранить данные:

  1. Сохранить на диске SQL скрипты, которые создают таблицы и другие объекты в базе данных, и заполняют таблицы данными.
  2. Выполнить скрипты языка SQL в базе данных, указанной пользователем.

Стоит отметить, что скрипты языка SQL, хоть и создаются на основе одних и тех же файлов базы данных, могут отличаться друг от друга. Это связанно с особенностями синтаксиса запросов, выполняемых при прямом соединении с сервером через ADO, или запросов SQL выполняемых в среде Query Analyzer’а, поставляемого в комплекте MS SQL Server (команда Go, использование «:» и т.д.). Более надежным является первый способ, хотя второй способ – более гибкий и гораздо удобней.

1. Сохранение данных на диск в виде скриптов

1.1. Представление данных при сохранении на диск

При сохранении на диск в указанной пользователем папке будет создан подкаталог с названием, содержащим имя исходного MDF файла. В этот каталог и будут помещены скрипты. Название каждого скрипта состоит из слова и цифры. Слово указывает на то, что этот скрипт делает, а цифра – это порядковый номер. Скрипты бываю следующих видов:

  • Types*.sql – это скрипты, создающие пользовательские типы.
  • Tables*.sql – это скрипты, создающие таблицы.
  • Indexes*.sql – это скрипты, создающие индексы и первичные ключи.
  • ForeignKeys*.sql – это скрипты, создающие вторичные ключи.
  • Procedure*.sql – это скрипты, создающие хранимые процедуры.
  • Function*.sql – это скрипты, создающие пользовательские функции.
  • View*.sql – это скрипты, создающие просмотры.
  • Triggers*.sql – это скрипты, создающие триггеры.
  • Data*.sql – это скрипты, заполняющие таблицу данными.

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

Внимание: Пропуски в номерах файлов означают, что в какой-то из таблиц отсутствуют данные.

1.2. Порядок выполнения скриптов

Рекомендуемый порядок выполнения таков:

Порядок запуска скриптов обусловлен особенностями наложения ограничений на существующие структуры и данные в таблице. Особо надо обратить внимание на следующие аспекты:

  1. Для создания вторичного ключа требуется указать соответствующий ему первичный ключ. Поэтому эти операции сохраняются в разных файлах, и требуется запускать их именно в такой последовательности.
  2. Заполнение таблиц выполняется до создания индексов и вторичных ключей. Это необходимо потому, что при заполнении таблицы, на которой определен вторичный ключ, происходит проверка ссылочной целостности. И, если таблица с вторичным ключом будет заполняться до таблицы с соответствующим первичным ключом, то возникнет ошибка. Кроме того, этот подход имеет и еще одну особенность. Если восстановленные данные противоречат уникальным индексам, первичному ключу и т.д., то в данном случае таблица все равно будет заполнена данными, но при этом не будет создано ограничение (индекс, первичный ключ и т.д.). Если требуется иное поведение, то пользователь вправе сам выбрать последовательность запуска скриптов.
  3. Создание следующих объектов Procedures, Functions, Views, Triggers в базе данных связано с определенными сложностями, т.к. эти объекты могут иметь сложные и запутанные зависимости. Например Procedure может ссылаться на другую Procedure, View на Function, а Trigger на все объекты сразу. Поэтому распутывание этого клубка с помощью программы невозможно. Пользователь должен или самостоятельно определить зависимости и выполнить SQL скрипты в нужной последовательности. Или выполнять все скрипты этой группы несколько раз, до тех пор, пока не перестанут появляться сообщения об ошибках.
1.3. Файл Install.bat

Для автоматического выполнения всех скриптов программа создает на диске файл install.bat. Этот файл выполнит все скрипты, сохраненные программой. Последовательность выполнения будет аналогичной последовательности как и при выполнении скриптов на базе данных. Для работы этого пакетного файла нужно, чтобы на компьютере была установлена утилита isqlw, входящая в клиентскую часть MS SQL Server. Для запуска файла install.bat необходимо в командной строке указать следующие параметры: «Имя сервера», «Имя базы данных», «Имя пользователя», «Пароль». Например: install.bat SQLServer SQLDatabase SQLUser SQLUserPassword

Внимание:
  1. Параметры указываются через пробел. Если какой-то параметр содержит пробел, то его нужно указывать в двойных кавычках.
  2. Менять местами параметры нельзя.
  3. Если пароль пустой или отсутствует, то необходимо поставить двойные ковычки: "".

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