как запускать sql скрипты
Мастер формирования и публикации скриптов
С помощью мастера формирования и публикации скриптов можно создавать скрипты для переноса баз данных между экземплярами Компонент SQL Server Database Engine или База данных SQL Azure. Скрипты для базы данных вы можете создавать на экземпляре компонента ядра СУБД в локальной сети или из База данных SQL. Сформированные скрипты могут выполняться на другом экземпляре компонента ядра СУБД или База данных SQL. С помощью мастера также можно публиковать содержимое базы данных непосредственно в веб-службе, созданной с помощью проекта служб Database Publishing Services. Создать скрипты можно как для всей базы данных, так и ограничить их определенными данными или объектами.
Более подробный учебник по использованию мастера формирования и публикации скриптов см. на странице Учебник по использованию мастера создания скриптов.
Перед началом
Публикация в размещенной службе
Помимо создания скриптов, с помощью мастера формирования и публикации скриптов также можно публиковать базу данных в веб-службе размещения SQL Server определенного типа. Пакет SQL Server Hosting Toolkit предоставляет службы Database Publishing Services в виде проекта с общим источником на CodePlex. С помощью проекта служб Database Publishing Services поставщики услуг размещения могут создать набор веб-служб, упрощающий их клиентам развертывание баз данных в веб-службе. Дополнительные сведения о загрузке пакета SQL Server Hosting Toolkit см. на странице SQL Server Database Publishing Services.
Чтобы опубликовать базу данных в веб-службе размещения, выберите параметр Опубликовать на веб-службе на странице Задание параметров скрипта мастера.
Permissions
Минимально необходимым разрешением для публикации базы данных является членство в предопределенной роли базы данных db_ddladmin в исходной базе данных. Минимально необходимым разрешением для публикации скриптов базы данных на экземпляре SQL Server у поставщика услуг размещения является членство в предопределенной роли базы данных db_ddladmin в базе данных-получателе.
Чтобы получить доступ к своим учетным записям на стороне поставщика услуг размещения для публикации с помощью мастера, пользователи также должны указать имя пользователя и пароль. Целевая база данных на стороне поставщика услуг размещения должна быть создана перед публикацией базы данных-источника. При публикации происходит перезапись объектов данной существующей базы данных.
Использование мастера формирования и публикации скриптов
Создание и публикация скрипта
В обозревателе объектов разверните узел экземпляра, содержащего базу данных, для которой следует создать скрипт.
Выберите пункт Задачи и щелкните Создать скрипты.
Выполните шаги в диалоговых окнах мастера.
Вводная страница
Эта страница описывает шаги по созданию и публикации скрипта.
Больше не показывать эту страницу — пропустить эту страницу при следующем запуске мастера формирования и публикации скриптов.
Страница «Выбор объектов»
На этой странице можно выбрать объекты для включения в скрипт, формируемый данным мастером. На следующей странице мастера можно найти параметр, позволяющий сохранять данные скрипты в выбранном месте или использовать их для публикации объектов базы данных у поставщика услуг размещения. Для этого у поставщика должна быть установлена служба SQL Server Database Publishing Services.
Внести в скрипт всю базу данных и все объекты базы данных — установите параметр, чтобы создать скрипт для всех объектов базы данных и самой базы данных.
Выбрать отдельные объекты базы данных — установите параметр, чтобы ограничить создание скрипта лишь определенными объектами в выбранной базе данных.
Объекты базы данных — выберите хотя бы один включаемый в скрипт объект.
Выбрать все — устанавливает все доступные флажки.
Отменить все — снимает все доступные флажки. Чтобы продолжить работу, должен быть выбран хотя бы один объект базы данных.
Страница «Задание параметров скрипта»
Эта страница позволит определить, должен мастер сохранять скрипты в выбранном месте или использовать их для публикации объектов базы данных для удаленного поставщика услуг размещения. Чтобы использовать функции публикации, необходимо иметь доступ к веб-службе, установленной с помощью веб-службы Database Publishing Services.
Параметры — если мастер должен сохранить скрипты в указанном расположении, выберите пункт Сохранить скрипты в заданном месте. Позднее вы можете выполнить скрипты для экземпляра компонента ядра СУБД или База данных SQL. Если мастер должен опубликовать объекты базы данных удаленно у поставщика услуг размещения, выберите пункт Опубликовать на веб-службе.
Сохранить скрипты в заданном месте — сохранение одного или нескольких файлов скриптов Transact-SQL в указанном местоположении.
Save as notebook (Сохранить как записную книжку) — сохранение скрипта в одном или нескольких SQL-файлах. Нажмите кнопку обзора ( . ), чтобы задать имя и выбрать местоположение файла.
Сохранить в буфер обмена — сохранение скрипта Transact-SQL в буфере обмена.
Открыть в новом окне запроса — сформировать скрипт в окне редактора запросов компонента Database Engine. Если не открыто ни одного окна редактора, в качестве назначения для скрипта открывается новое окно редактора.
Целевая база данных — выберите целевую базу данных, в которой необходимо опубликовать выбранные объекты. Сначала выберите поставщика, а потом целевую базу данных.
Страница «Дополнительные параметры скриптов»
Параметры — укажите дополнительные параметры, выбрав значение из списка, который находится справа от каждого из параметров.
Общие — следующие параметры применяются ко всему скрипту.
Проверка существования объекта — если установлено значение true, добавляет проверку существования перед созданием инструкции CREATE для объектов SQL. Пример: таблицы, представления, функции или хранимые процедуры. Инструкция CREATE упаковывается в оператор IF. Если вы знаете, что целевой объект является чистым, то скрипт намного чище. Если вы НЕ предполагаете, что в целевом объекте существуют другие объекты, появится сообщение об ошибке. По умолчанию False.
Продолжить выполнение скрипта при ошибке — значение False указывает, что выполнение скрипта останавливается при возникновении ошибки. Если значение равно True, то выполнение скрипта продолжается. По умолчанию False.
Преобразовать определяемые пользователем типы данных в базовые типы данных — если значение равно True, то определяемые пользователем типы данных (UDDT) преобразуются в базовые типы данных, которые использовались для их создания. Указывайте значение True в том случае, если в базе данных, в которой будет выполняться скрипт, отсутствуют определяемые пользователем типы данных. Если значение равно False, то используются определяемые пользователем типы данных. По умолчанию False.
Сформировать скрипт для зависимых объектов — формируется скрипт для всех объектов, необходимых для выполнения скрипта для выбранного объекта. Значение по умолчанию равно True.
Включить описательные заголовки — если значение равно True, то к скрипту добавляются описательные комментарии, разделяющие его на разделы для каждого объекта. По умолчанию False.
Включить предложение IF NOT EXISTS — если значение равно True, то в скрипт включается инструкция проверки существования объекта в базе данных. Если объект существует, то попытка его создания не выполняется. По умолчанию False.
Включить имена системных ограничений — если значение равно False, то значения по умолчанию для ограничений, которые были автоматически названы по имени исходной базы данных, автоматически переименовываются в соответствии с названием целевой. Если значение равно True, то ограничения имеют одно и то же имя в исходной и в целевой базах данных.
Включить неподдерживаемые инструкции — если значение равно False, то скрипт не содержит инструкций для объектов, не поддерживаемых выбранной версией сервера или типом компонента Database Engine. Если значение равно True, то в скрипте содержатся неподдерживаемые объекты. В каждой инструкции для неподдерживаемого объекта присутствует комментарий о том, что инструкция должна быть изменена перед выполнением скрипта на указанной версии SQL Server или типе компонента Database Engine. По умолчанию False.
Указывать схему в именах объектов — включает имя схемы в имя создаваемого объекта. Значение по умолчанию равно True.
Привязка скрипта — создает скрипт для связывания объектов по умолчанию и объектов правил. По умолчанию False. Дополнительные сведения см. в статьях CREATE DEFAULT (Transact-SQL) и CREATE RULE (Transact-SQL).
Внести в скрипт параметры сортировки — включает в скрипт сведения о параметрах сортировки. По умолчанию False. Дополнительные сведения см. в статье Collation and Unicode Support.
Внести в скрипт значения по умолчанию — включает объекты «значения по умолчанию», определяющие значения по умолчанию для столбцов таблиц. Значение по умолчанию равно True. Дополнительные сведения см. в статье CREATE DEFAULT (Transact-SQL).
Внести в скрипт расширенные свойства — включает в скрипт расширенные свойства, если они имеются у объекта. Значение по умолчанию равно True.
Тип скрипта компонента ядра СУБД — создает скрипт, который можно выполнить в выбранном типе База данных SQL или экземпляра компонента ядра СУБД SQL Server. Объекты, не поддерживаемые указанным типом, не включаются в скрипт. По умолчанию выбран тип исходного сервера.
Скрипт для версии сервера — создает скрипт, который можно выполнить в выбранной версии SQL Server. В скриптах для более ранних версий нельзя использовать новые возможности текущей версии. По умолчанию выбрана версия исходного сервера.
Внести в скрипт имена входа — если объект, включаемый в скрипт, является пользователем базы данных, этот параметр создает имена входа, от которых зависит пользователь. По умолчанию False.
Внести в скрипт разрешения уровня объектов — включает скрипты, задающие разрешения для объектов в базе данных. По умолчанию False.
Типы данных для внесения в скрипт — выбирает включаемое в скрипт содержимое: Только данные, Только схема или то и другое. Значение по умолчанию равно Только схема.
Параметры таблицы или представления — следующие параметры применяются только к скриптам для таблиц и представлений.
Создать скрипт для отслеживания изменений — вносит в скрипт отслеживание изменений, если данная функция включена в исходной базе данных или в таблицах исходной базы данных. По умолчанию False. Дополнительные сведения см. в статье Об отслеживании изменений (SQL Server).
Внести в скрипт проверочные ограничения — добавляет ограничения CHECK в скрипт. Значение по умолчанию равно True. Ограничения CHECK требуют, чтобы данные, вводимые в таблицу, соответствовали некоторым указанным условиям. Дополнительные сведения см. в статье Ограничения уникальности и проверочные ограничения.
Внести в скрипт параметры сжатия данных — включает параметры сжатия данных в скрипт, если они настроены в исходной базе данных или в таблицах исходной базы данных. Дополнительные сведения см. в разделе Data Compression. По умолчанию False.
Внести в скрипт внешние ключи — добавляет к скрипту внешние ключи. Значение по умолчанию равно True. Внешние ключи задают связи между таблицами.
Внести в скрипт полнотекстовые индексы — включает в скрипт создание полнотекстовых индексов. По умолчанию False.
Внести в скрипт индексы — включает в скрипт создание индексов. Значение по умолчанию равно True. Индексы ускоряют поиск данных.
Внести в скрипт первичные ключи — включает в скрипт создание первичных ключей в таблицах. Значение по умолчанию равно True. Первичные ключи однозначно определяют каждую строку в таблице.
Внести в скрипт триггеры — включает в скрипт создание триггеров DML в таблицах. По умолчанию False. Триггер DML — это действие, которое выполняется при наступлении события языка обработки данных DML на сервере базы данных. Дополнительные сведения см. в разделе DML Triggers.
Внести в скрипт уникальные ключи — включает в скрипт создание уникальных ключей в таблицах. Уникальные ключи препятствуют вводу повторяющихся данных. Значение по умолчанию равно True. Дополнительные сведения см. в статье Ограничения уникальности и проверочные ограничения.
Страница «Сводка»
На этой странице содержится сводка параметров, выбранных в данном мастере. Чтобы изменить параметр, нажмите кнопку Назад. Чтобы начать формирование сохраненных или опубликованных скриптов, нажмите кнопку Далее.
Просмотр выбранных параметров — отображает выбранные на всех страницах мастера варианты параметров. Разверните узел, чтобы просмотреть выбранные параметры для соответствующей страницы.
Страница «Сохранение или публикация скриптов»
Эта страница служит для наблюдения за процессом работы мастера.
Сведения — в столбце Действие отображается ход работы мастера. После создания скриптов мастер сохраняет их в файле или использует для публикации на веб-службе, в зависимости от выбранных ранее параметров. После выполнения этих шагов выберите значение в столбце Результат, чтобы просмотреть результат для соответствующего шага.
Сохранить отчет — выберите, чтобы сохранить результаты работы мастера в файле.
Отмена — нажмите кнопку, чтобы закрыть мастер до завершения обработки или в случае возникновения ошибки.
Готово — выберите, чтобы закрыть мастер после завершения обработки или возникновения ошибки.
Сохранение скриптов
Если все параметры верны, настройка завершится успешно.
Создание скриптов в Azure Synapse Analytics
Если синтаксис, полученный при использовании команды «Создать скрипт для. «, не выглядит как синтаксис Azure Synapse Analytics, или появляется сообщение об ошибке, параметрам формирования скрипта в среде SQL Server Management Studio необходимо присвоить значение Azure Synapse Analytics.
Выбор хранилища данных SQL в качестве параметров формирования скрипта по умолчанию
Формирование скриптов для хранилища данных SQL, если оно не является параметром формирования скрипта по умолчанию
Параметры, заданные на шаге 4, не будут запомнены. Если вы хотите, чтобы эти параметры были запомнены, выполните инструкции, указанные в статье Выбор хранилища данных SQL в качестве параметров формирования скрипта по умолчанию.
Краткое руководство. Выполнение простых скриптов Python с использованием машинного обучения SQL
В этом кратком руководстве вы запустите ряд простых сценариев Python с помощью Служб машинного обучения SQL Server, Служб машинного обучения управляемых экземпляров SQL Azure или в Кластерах больших данных SQL Server. Также вы узнаете, как применить хранимую процедуру sp_execute_external_script для выполнения скрипта в экземпляре SQL Server.
Предварительные требования
Для работы с этим кратким руководством необходимо следующее.
База данных SQL на одной из следующих платформ:
Средство для выполнения SQL-запросов, содержащих сценарии Python. В этом кратком руководстве используется Azure Data Studio.
Выполнение простого сценария
Чтобы выполнить сценарий Python, необходимо передать его в качестве аргумента в системную хранимую процедуру sp_execute_external_script. Эта системная хранимая процедура запускает среду выполнения Python в контексте машинного обучения SQL, передает данные в Python, безопасно управляет пользовательскими сеансами в Python и возвращает результаты на клиент.
На следующих этапах вы запустите этот скрипт Python в базе данных:
Откройте новое окно запроса в среде Azure Data Studio, подключенной к вашему экземпляру SQL.
Далее вычисляется правильный результат, и функция Python print возвращает результат в окне Сообщения.
Он должен выглядеть примерно так.
Результаты
Выполнение сценария Hello World
Типичный пример — сценарий, который просто выводит строку «Hello World». Выполните следующую команду.
В хранимую процедуру sp_execute_external_script передаются следующие входные данные.
Входные данные | Описание |
---|---|
@language | Определяет вызываемое расширение языка (в данном случае Python). |
@script | Определяет команды, которые передаются в среду выполнения Python. Весь скрипт Python должен быть включен в этот аргумент в виде текста в Юникоде. Также можно добавить текст в переменную типа nvarchar, а затем вызвать ее. |
@input_data_1 | Данные, возвращаемые запросом, передаются в среду выполнения Python, которая возвращает их в виде кадра данных. |
WITH RESULT SETS | Это предложение определяет схему возвращаемой таблицы данных для машинного обучения SQL. В данном случае добавляется «Hello World» в качестве имени столбца и int в качестве типа данных. |
Эта команда выводит следующий текст:
Использование входных и выходных данных
По умолчанию процедура sp_execute_external_script принимает в качестве входных данных один набор данных, обычно предоставляемый в виде допустимого SQL-запроса. Затем она возвращает один кадр данных Python в качестве выходных данных.
Сейчас мы будем использовать заданные по умолчанию входные и выходные переменные процедуры sp_execute_external_script : InputDataSet и OutputDataSet.
Создайте небольшую таблицу тестовых данных.
Используйте инструкцию SELECT для запроса в эту таблицу.
Результаты
Результаты
Теперь измените имена входных и выходных переменных. Имена входных и выходных переменных по умолчанию°— InputDataSet и OutputDataSet. Следующий сценарий изменяет их на SQL_in и SQL_out.
В качестве параметра может быть передан только один входной набор данных, и можно возвращать только один набор данных. Однако вы можете вызывать из кода Python другие наборы данных, а также возвращать выходные данные других типов в дополнение к этому набору данных. Вы также можете добавить ключевое слово OUTPUT к любому параметру, чтобы он возвращался с результатами.
Можно также формировать значения только с помощью сценария Python, без каких-либо входных данных (в аргументе @input_data_1 задано пустое значение).
Следующий сценарий выводит текст «hello» и «world».
Результаты
В Python начальные пробелы используются для группирования инструкций. Поэтому когда внедренный сценарий Python разделяется на несколько строк, как в предыдущем примере, не пытайтесь выровнять команды Python по одной линии с командами SQL. Например, следующий сценарий выдаст ошибку.
Проверка версии Python
Если вы хотите узнать, какая версия Python установлена на сервере, выполните следующий сценарий.
Функция Python print возвращает версию в окне Сообщения. В приведенном ниже примере можно видеть, что в данном случае установлен Python версии 3.5.2.
Результаты
Список пакетов Python
Корпорация Майкрософт предоставляет ряд пакетов Python, которые устанавливаются вместе со Службами машинного обучения.
Чтобы просмотреть список установленных пакетов Python вместе с их версиями, выполните следующий сценарий.
Список возвращается из pkg_resources.working_set в Python в формате кадра данных.
Результаты
Дальнейшие действия
Сведения о том, как применять структуры данных при использовании Python в машинном обучении SQL, см. в этом кратком руководстве:
Шпаргалка по SQL*Plus
К написанию этой статьи меня подтолкнула книга «Oracle SQL*Plus: The Definitive Guide, 2nd Edition», написанная Jonathan Gennick. Как обычно, появилось желание систематизировать информацию и представить ее в удобном виде.
При этом сразу считаю нужным оговориться, что я использую SQLplus для написания и выполнения скриптов на удаленных машинах, в этой статье описываю именно используемые для этого команды.
Параметры, подключение к базе, запуск скриптов
Выполнить несколько строк кода (не передавая отдельный файл со скриптом), unix:
Выполнение SQL запросов
Запрос может состоять из нескольких строк, содержать комментарии, но не может содержать внутри пустые строки.
Запрос может быть выполнен тремя способами:
Выполнение PL/SQL блоков
Пример PL/SQL блока:
Правила выполнения PL/SQL блоков:
Сигнал к выполнению блока может быть подан двумя путями:
Одиночное выражение PL/SQL может быть выполнено, используя:
В случае ошибок, при выполнении процедуры, можно отобразить их выполнив команду:
Работа с переменными
Переменные могут быть заданы двумя способами:
Если уже была определена &&variable, то значение будет подставлено во все дальнейшие переменные как &variable так и &&variable.
ACCEPT можно использовать для валидации:
Для ввода дат в определенном формате:
SQL*Plus поддерживает четыре типа переменных: CHAR, NUMBER, BINARY_FLOAT, and BINARY_DOUBLE. При вводе с клавиатуры переменная будет типа CHAR.
Несмотря на это, можно использовать NEW_VALUE, чтобы задать числовую переменную, полученную как результат запроса.
Bind-переменные могут использоваться для передачи данных между PL/SQL и SQL блоками:
Присвоить bind-переменной значение &-переменной:
Вывести значение bind-переменной:
Присвоить &-переменной значение bind-переменной:
Получаем OUT-параметр процедуры в bind-переменную:
Условное выполнение в SQLplus:
Пример скрипта, принимающего несколько переменных на вход в формате c возможностью задать дефолтные значения:
Настройки выполнения скриптов
Действуют на протяжении сессии в SQLplus.
Запомнить настройки перед выполнением скрипта и вернуть обратно по завершении выполнения:
Другие команды
Взаимодействие с unix shell
Обработать результат выполнения SQLplus-скрипта в Unix:
Вернуть код ответа в Unix:
Вывод из скрипты в переменную командной строки unix: