Руководство по импорту SQL скриптов в базу данных

Вопрос:

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

Ответ:

Есть несколько способов сохранить восстановленные данные, полученные в результате работы программы SQL Server Repair Toolbox:

  1. Можно сохранить данные в виде SQL скриптов на жесткий диск, и далее выполнить эти скрипты. В результате будут созданы таблицы и объекты (индексы, процедуры, функции и прочее). Затем импортировать данные в эти таблицы.
  2. А также можно запустить данные SQL скрипты, используя SQL Server Repair Toolbox, настроив connection string к заданному хранилищу (SQL Server и другую базу данных).

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

  1. Конвертация восстановленных данных в SQL скрипты и сохранение их на жестком диске
    1. Просмотр сохраненных данных

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

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

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

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

    2. Последовательность исполнения скриптов

      На рисунке можно увидеть рекомендуемую последовательность исполнения:

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

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

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

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

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

    4. InstallTrusted.bat

      Если Вы используйте авторизацию в Microsoft SQL Server с помощью учетной записи Windows, то используйте файл InstallTrusted.bat . Файл InstallTrusted.bat имеет 2-а параметра: Server name, Database name.

      Пример использования: installtrusted.bat SQLServer SQLDatabase Подробные сведения об авторизации через учетную запись Windows тут: https://docs.microsoft.com/ru-ru/sql/relational-databases/security/authentication-access/principals-database-engine?redirectedfrom=MSDN&view=sql-server-ver15