Руководство по импорту SQL скриптов в базу данных
Вопрос:
Как импортировать сохраненные SQL скрипты в базу данных SQL Server?
Ответ:
Есть несколько способов сохранить восстановленные данные, полученные в результате работы программы SQL Server Repair Toolbox:
- Можно сохранить данные в виде SQL скриптов на жесткий диск, и далее выполнить эти скрипты. В результате будут созданы таблицы и объекты (индексы, процедуры, функции и прочее). Затем импортировать данные в эти таблицы.
- А также можно запустить данные SQL скрипты, используя SQL Server Repair Toolbox, настроив connection string к заданному хранилищу (SQL Server и другую базу данных).
SQL скрипты могут различаться, несмотря на то, что они основываются на тех же файлах базы данных. Это связанно с особенностью синтаксиса в запросах, которые выполняются при соединении с серверов с помощью ADO, а также с выполнением SQL запросов в среде Query Analyzer’а, которая поставляется вместе с Microsoft SQL Server (использование «:», команды Go и т.д.).
- Конвертация восстановленных данных в SQL скрипты и сохранение их на жестком диске
- Просмотр сохраненных данных
Если вы выбрали режим сохранения данных на жесткий диск, программа автоматически создаст подкаталог, который в свою очередь создается в каталоге, указанном пользователем, и все скрипты будут помещены туда. Имена всех создаваемых скриптов, соответствуют правилам и состоят из слов и цифр, где слово означает его роль, а цифра указывает на номер. Типов скриптов существует множество, например:
- Types*.sql – типы данных, определяемые пользователем.
- Tables*.sql – таблицы.
- Indexes*.sql – первичные ключи и индексы.
- ForeignKeys*.sql – вторичные ключи.
- Procedure*.sql – хранимые процедуры.
- Function*.sql – функции, определяемые пользователями.
- View*.sql – просмотры.
- Triggers*.sql – триггеры.
- Data*.sql – таблицы с данными.
Порядковый номер скрипта используется для разделения данных и сохранения их во множество небольших документов, вместо одного большого файла. Необходимо отметить, что каждый файл типа Data может включать данные только одной таблицы.
Внимание: в некоторых файлах могут отсутствовать номера, это означает что в некоторых таблицах отсутствуют данные или их очень мало.
- Последовательность исполнения скриптов
На рисунке можно увидеть рекомендуемую последовательность исполнения:
Последовательность исполнения скриптов зависит от существующих ограничений для имеющихся данных и структур таблицы. Пожалуйста, обратите особое внимание на эти факторы:
- Укажите соответствующий первичный ключ, если вы хотите создать вторичный. Это позволит сохранить эти операции в различные файлы, которые нужно запустить в этой последовательности.
- Перед созданием индексов и вторичных ключей, программа заполняет таблицы. Это необходимо, так как проверка ссылочной целостности выполняется при заполнении таблицы, в которой определен вторичный ключ. Когда таблицы с вторичными ключами заполняются до таблиц с соответствующими первичными ключами, возникает ошибка. Помимо этого, данный способ обладает другой особенностью. Если восстановленная информация конфликтует с первичным ключом, уникальным индексом, и т.д., то в этом случае таблица в любом случае будет заполнена, но тогда ограничения не будут созданы (индекс, первичный ключ и т.д.). Если пользователям необходимо другое поведение, они могут сами выбрать последовательность запуска скриптов.
- Создание таких объектов, как Procedures, Functions, Views, Triggers в базе данных имеет особенности, потому что эти объекты могут обладать запутанными и сложными зависимостями. Procedure может ссылаться на другие объекты Procedure, View может ссылаться на Function, а Trigger может ссылаться на все объекты. Поэтому, программа не может помочь распутать эти сложные взаимозависимости. Пользователям нужно вручную найти все зависимости и запустить SQL в нужной последовательности. Другая возможность состоит в запуске всех скриптов этой группы несколько раз, пока перестанут выдаваться сообщения об ошибках.
- Файл Install.bat
Файл install.bat создается для того, чтобы обеспечить автоматическое выполнение всех скриптов. Этот файл исполняет все скрипты, которые были ранее сохранены с помощью этой программы. Последовательность исполнения скриптов будет такой же, как и при выполнении скриптов на базе данных. Этот пакетный файл требует наличия установленной утилиты isqlw, которая входит в состав клиентской части MS SQL Server. Пожалуйста, укажите такие параметры, как Имя сервера, Имя базы данных, Имя пользователя, Пароль в командной строке. Например: install.bat SQLServer SQLDatabase SQLUser SQLUserPassword.
Примечание:
- Параметры нужно указывать через пробел. Если какой-либо из параметров сам содержит пробел, вам нужно указать его в двойных кавычках.
- Нельзя менять местами параметры.
Если же файл install.bat будет запущен без указания параметров, вы увидите небольшую инструкцию, как запускать этот файл.
- 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
- Просмотр сохраненных данных