Sql management studio конструктор запросов

Обновлено: 26.04.2024

Аннотация: Прочитав эту лекцию, вы сможете: создавать запросы при помощи Конструктора запросов SQL Server Management Studio, извлекать информацию о базе данных из системных таблиц базы данных, динамически создавать простые запросы на основе пользовательского ввода, форматировать пользовательский ввод и фильтровать сложные динамические запросы, выполнять синтаксический анализ и переформатировать данные для использования в фильтре, защитить базу данных от атак типа "SQL-injection", использовать процедуру sp_executeSql для передачи запроса

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

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

Интерфейс пользователя для построения запросов

Среда SQL Server Management Studio включает сложный интерфейс для построения запросов. Давайте изучим этот интерфейс , чтобы у вас сформировалось представление о том, как можно создавать запросы динамически. Вашему приложению не понадобятся все элементы управления , которые предоставляет среда SQL Server Management Studio. По сути, нужно тщательно продумать, как наилучшим образом ограничить пользователям возможности выбора.

Создаем запрос при помощи Конструктора запросов SQL Server Management Studio

  1. В SQL Server Management Studio, если нужно, присоедините базу данных Adventure Works , а затем разверните базу данных в Object Explorer (Обозревателе объектов), как показано на рисунке.

Совет. О том, как присоединить базу данных, рассказывается в лекциях 6-7 курса "Разработка и защита баз данных в Microsoft SQL Server 2005", которая называется "Перенос базы данных на другие системы".

Конструктор запросов и представлений открывается при открытии определения представления, показе результатов запроса или представления, при создании или открытии запроса. Он состоит из четырех отдельных панелей.

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

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

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

Эти панели полезны для работы с запросами и представлениями.

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

Открытие конструктора запросов и представлений для представления

В обозревателе объектов щелкните правой кнопкой мыши нужное представление и выберите команду Конструктор или Открыть представление.

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

Открытие конструктора запросов и представлений для существующего запроса

В обозревателе решений разверните папку Запросы .

Дважды щелкните мышью открываемый запрос.

Выделите инструкции запроса, щелкните правой кнопкой мыши выделенную область и выберите команду Создать запрос в редакторе.

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

Панель диаграмм отображает запрашиваемые таблицы и другие возвращающие табличное значение объекты. Каждый прямоугольник представляет таблицу или возвращающий табличное значение объект и показывает доступные столбцы данных. Соединения обозначены линиями между прямоугольниками. Дополнительные сведения см. в разделе Панель диаграммы (визуальные инструменты для баз данных).

Панель «Критерии» содержит сетку, подобную электронной таблице, в которой указываются параметры, например какие столбцы данных нужно отображать, какие строки выбирать, как группировать строки и так далее. Дополнительные сведения см. в разделе Панель критериев (визуальные инструменты для баз данных).

Панель «SQL» отображает инструкции SQL для запроса или представления. Можно редактировать инструкцию SQL, созданную конструктором, или можно ввести собственную инструкцию SQL. Это особенно полезно для ввода инструкций SQL, которые не могут быть созданы с помощью панелей диаграмм и критериев, например запросы объединения. Дополнительные сведения см. в разделе Панель SQL (визуальные инструменты для баз данных).

Панель «Результаты» показывает сетку с данными, полученными запросом или представлением. В конструкторе запросов и представлений панель показывает результаты последнего выполненного запроса SELECT. Можно изменить базу данных, изменяя значения в ячейках сетки, а также добавлять или удалять строки. Дополнительные сведения см. в разделе Панель результатов (визуальные инструменты для баз данных).

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

Отображение и скрытие панелей

Для скрытия или отображения невидимой панели щелкните правой кнопкой мыши панель конструктора, выберите пункт Панель, затем щелкните имя панели. Если конструктор запросов и представлений открыт в режиме конструктора запросов, панель Результаты недоступна.

В этой статье описываются возможности и функции редактора запросов SQL Server Management Studio (SSMS).

Если вы хотите узнать, как использовать справку F1 по Transact-SQL (T-SQL), ознакомьтесь с разделом Справка F1 по Transact-SQL.

Если вы хотите узнать о задачах, которые можно выполнять с помощью редактора, перейдите к разделу Задачи редактора.

Редакторы в среде SSMS совместно используют стандартную архитектуру. Текстовый редактор реализует базовые функциональные возможности и может быть использован в качестве базового редактора для текстовых файлов. Другие редакторы (редакторы запросов) расширяют эти функциональные возможности, подключая языковую службу, определяющую синтаксис одного из языков, поддерживаемых в SQL Server. В редакторах запросов также присутствуют различные уровни поддержки таких функций редактора, как IntelliSense или отладка. В набор редакторов запросов входят редактор запросов компонента ядра СУБД, используемый для создания скриптов, содержащих инструкции T-SQL и XQuery, редактор многомерных выражений для работы с языком многомерных выражений, редактор расширений интеллектуального анализа данных для работы с языком расширений интеллектуального анализа данных и редактор XML/A для работы с языком XML для аналитики. Вы можете использовать редактор запросов, чтобы создавать и выполнять скрипты, содержащие инструкции Transact-SQL.

New query

Панель инструментов редактора SQL

Если открыт редактор запросов, отображается панель инструментов редактора SQL со следующими кнопками.

Можно также добавить панель инструментов редактора SQL, выбрав меню Вид , Панели инструментов, а затем выбрав Редактор SQL. Если добавить панель инструментов редактора SQL, когда окно редактора запросов не открыто, все кнопки будут недоступны.

Editor toolbar

Кнопка "Подключиться" на панели инструментов редактора

Открывает диалоговое окно Соединение с сервером . Используйте это диалоговое окно, чтобы установить соединение с сервером.

Подключиться к базе данных можно также с помощью контекстного меню.

Кнопка "Изменить подключение" на панели инструментов редактора

Открывает диалоговое окно Соединение с сервером . Используйте это диалоговое окно, чтобы установить соединение с другим сервером.

Изменить подключение можно также с помощью контекстного меню.

Кнопка "Доступные базы данных" на панели инструментов редактора

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

Кнопка "Выполнить" на панели инструментов редактора

Выполняет выбранный код или, если код не выбран, выполняет весь код редактора запросов.

Запрос можно выполнить также с помощью клавиши F5 или контекстного меню.

Кнопка "Отменить выполнение запроса" на панели инструментов редактора

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

Отменить выполнение запроса можно также с помощью клавиш ALT+BREAK.

Кнопка "Анализ" на панели инструментов редактора

Проверяет синтаксис выбранного кода. Если код не выбран, проверяется весь синтаксис кода в окне редактора запросов.

Проверить код в редакторе запросов можно также с помощью клавиш CTRL+F5.

Кнопка "Показать предполагаемый план выполнения" на панели инструментов редактора

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

Отобразить предполагаемый план выполнения можно также с помощью клавиш CTRL+L или контекстного меню.

Кнопка "Параметры запроса" на панели инструментов редактора

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

Открыть окно Параметры запроса можно также с помощью контекстного меню.

Кнопка "Функция Intellisense включена" на панели инструментов редактора

Указывает, доступны ли функциональные возможности технологии IntelliSense в редакторе запросов ядра СУБД. По умолчанию этот параметр активирован.

Вызвать команду Функция Intellisense включена можно также с помощью клавиш CTRL+B > CTRL+I или контекстного меню.

Кнопка "Включить действительный план выполнения" на панели инструментов редактора

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

Вызвать команду Включить действительный план выполнения можно также с помощью клавиш CTRL+M или контекстного меню.

Кнопка "Включить статистику активных запросов" на панели инструментов редактора

Позволяет анализировать процесс выполнения запроса в режиме реального времени по мере передачи управления от одного оператора плана запроса другому.

Вызвать команду Включить статистику активных запросов можно также с помощью контекстного меню.

Кнопка "Включить статистику клиента" на панели инструментов редактора

Включает окно Статистика клиента , содержащее статистические данные по запросу и сетевым пакетам, а также по времени выполнения запроса.

Вызвать команду Включить статистику активных запросов можно также с помощью клавиш SHIFT+ALT+S или контекстного меню.

Кнопка "Результаты в текст" на панели инструментов редактора

Возвращает результаты запроса в текстовом виде в окне Результаты .

Вывести результаты в текст можно также с помощью клавиш CTRL+T или контекстного меню.

Кнопка "Результаты в сетку" на панели инструментов редактора

Возвращает результаты запроса в виде одной или нескольких сеток в окне Результаты . По умолчанию параметр включен.

Вывести результаты в сетку можно также с помощью клавиш CTRL+D или контекстного меню.

Кнопка "Результаты в виде файла" на панели инструментов редактора

По завершении выполнения запроса открывается диалоговое окно Сохранить результаты . В поле Сохранить ввыберите папку, в которой необходимо сохранить файл. В поле Имя файла введите имя файла, а затем нажмите кнопку Сохранить, чтобы сохранить результаты запроса в файл отчета с расширением RPT. Для настройки дополнительных параметров выберите стрелку вниз на кнопке Сохранить, а затем пункт Выбор кодировки для сохранения.

Вывести результаты в текст можно также с помощью клавиш CTRL+SHIFT+F или контекстного меню.

Кнопка "Закомментировать выделенные строки" на панели инструментов редактора

Преобразует текущую строку в комментарий, добавляя оператор комментария (--) в начало строки.

Закомментировать строку можно также с помощью клавиш CTRL+K > CTRL+C.

Кнопка "Раскомментировать выделенные строки" на панели инструментов редактора

Преобразует текущую строку в активную инструкцию исходного кода, удаляя оператор комментария (--) в начале строки.

Раскомментировать строку можно также с помощью клавиш CTRL+K > CTRL+U.

Кнопка "Уменьшить отступ" на панели инструментов редактора

Перемещает текст строки влево, удаляя пробелы в начале строки.

Кнопка "Увеличить отступ строки" на панели инструментов редактора

Перемещает текст строки вправо, добавляя пробелы в начале строки.

Кнопка "Задание значений для параметров шаблона" на панели инструментов редактора

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

Контекстное меню

Чтобы вызвать контекстное меню, щелкните правой кнопкой мыши любую область редактора запросов. В контекстном меню отображаются те же команды, что и на панели инструментов редактора SQL. В контекстном меню, помимо команд Подключиться и Выполнить, отображаются и другие команды, например Вставить фрагмент кода и Заключить в.

Options

Команда "Вставить фрагмент кода" в контекстном меню

Фрагмент кода T-SQL — это шаблон, который можно использовать в качестве отправной точки при написании новых инструкций Transact-SQL в редакторе запросов.

Команда "Заключить в" в контекстном меню

Фрагмент кода, который можно использовать в качестве отправной точки при включении набора инструкций Transact-SQL в блок BEGIN, IF или WHILE.

Команда "Подключиться" в контекстном меню

Connections

В отличие от панели инструментов SSMS в контекстном меню есть больше вариантов подключения.

Подключиться — открывает диалоговое окно "Соединение с сервером". Используйте это диалоговое окно, чтобы установить соединение с сервером.

Отключить — отключает текущее окно редактора запросов от сервера.

Отключить все запросы — отключает все соединения запросов.

Изменить соединение — открывает диалоговое окно "Соединение с сервером". Используйте это диалоговое окно, чтобы установить соединение с другим сервером.

Команда "Открыть сервер в обозревателе объектов" в контекстном меню

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

Команда "Выполнить" в контекстном меню

Выполняет выбранный код или, если код не выбран, выполняет весь код в редакторе запросов.

Команда "Показать предполагаемый план выполнения" в контекстном меню

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

Команда "Функция Intellisense включена" в контекстном меню

Указывает, доступны ли функциональные возможности технологии IntelliSense в редакторе запросов ядра СУБД. По умолчанию этот параметр активирован.

Команда "Трассировка запроса в приложении SQL Server Profiler" в контекстном меню

SQL Server Profiler — это интерфейс для создания трассировок и управления ими, а также для анализа и воспроизведения полученных результатов. События сохраняются в файле трассировки, который затем может быть проанализирован или использован для воспроизведения определенных последовательностей шагов для выявления возникших проблем.

Команда "Анализ запроса в помощнике по настройке ядра СУБД" в контекстном меню

Помощник по настройке ядра СУБД (Майкрософт) анализирует базы данных и составляет рекомендации по оптимизации производительности запросов. Помощник по настройке ядра СУБД используется для выбора и создания оптимальных наборов индексов, индексированных представлений и секций таблицы, не обладая экспертным уровнем понимания структуры баз данных или внутренних процессов SQL Server. Помощник по настройке ядра СУБД позволяет выполнять следующие задачи.

Команда "Создать запрос в редакторе" в контекстном меню

Конструктор запросов и представлений открывается при открытии определения представления, показе результатов запроса или представления, при создании или открытии запроса.

Команда "Включить действительный план выполнения" в контекстном меню

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

Команда "Включить статистику активных запросов" в контекстном меню

Позволяет анализировать процесс выполнения запроса в режиме реального времени по мере передачи управления от одного оператора плана запроса другому.

Команда "Включить статистику клиента" в контекстном меню

Включает окно Статистика клиента , содержащее статистические данные по запросу и сетевым пакетам, а также по времени выполнения запроса.

Команды для вывода результатов в контекстном меню

Results options

В контекстном меню можно выбрать любой вариант вывода результатов.

Результаты в текст — отображает результаты запроса в текстовом виде в окне Результаты.

Результаты в сетку — отображает результаты запроса в виде одной или нескольких сеток в окне Результаты.

Результаты в виде файла — после выполнения запроса открывается диалоговое окно Сохранить результаты. В поле Сохранить ввыберите папку, в которой необходимо сохранить файл. В поле Имя файла введите имя файла, а затем нажмите кнопку Сохранить, чтобы сохранить результаты запроса в файл отчета с расширением RPT. Для настройки дополнительных параметров выберите стрелку вниз на кнопке Сохранить, а затем пункт Выбор кодировки для сохранения.

Команда "Окно свойств" в контекстном меню

Окно свойств описывает состояние элемента в SQL Server Management Studio, например подключение или оператор Showplan, и сведения об объектах базы данных, таких как таблицы, представления и конструкторы.

Окно свойств используется для просмотра свойств текущего соединения. Многие свойства в окне свойств доступны только для чтения, однако могут быть изменены другими средствами Management Studio. Например, свойство "База данных" запроса в окне свойств доступно только для чтения, но может изменяться на панели инструментов.

Команда "Параметры запроса" в контекстном меню

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

Справка F1 по Transact-SQL

При нажатии клавиши F1 редактор запросов открывает раздел справки по нужной вам инструкции Transact-SQL. Чтобы сделать это, выделите имя инструкции Transact-SQL и нажмите клавишу F1. После этого поисковая система справки выполнит поиск раздела, имеющего атрибут справки F1, соответствующий выделенной строке.

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

Скопируйте и вставьте из буфера редактора строку, выделенную на вкладке поиска электронной документации по SQL Server, и воспользоваться функцией поиска.

Выделите только ту часть инструкции Transact-SQL, которая вероятнее всего совпадет с ключевым словом справки F1, относящимся к разделу, и повторно нажмите клавишу F1. Средству поиска справки необходимо полное соответствие между выделенной строкой и ключевым словом справки F1, назначенным для раздела. Если выделенная строка содержит элементы, уникальные для вашей среды, например имена столбцов или параметров, поисковая система не сможет найти совпадение. Примерами строк для выделения могут служить следующие:

Имя инструкции Transact-SQL, такое как SELECT, CREATE DATABASE или BEGIN TRANSACTION.

Имя встроенной функции, такой как SERVERPROPERTY или @@VERSION.

Имя системной хранимой процедуры, таблицы или представлений, такое как sys.data_spaces или sp_tableoption.

XYZ School

Среда SQL Server Management Studio предоставляет завершенное средство для создания всех типов запросов. С ее помощью можно создавать, сохранять, загружать и редактировать запросы. Кроме этого, над запросами можно работать без подключения к какому-либо серверу. Этот инструмент также предоставляет возможность разрабатывать запросы для разных проектов.

Предоставляется возможность работать с запросами как посредством редактора запросов, так и с помощью обозревателя решений. В этой статье рассматриваются оба эти инструмента. Кроме этих двух компонентов среды SQL Server Management Studio мы рассмотрим отладку SQL-кода, используя встроенный отладчик.

Редактор запросов

Чтобы открыть панель редактора запросов Query Editor (Редактор запросов), на панели инструментов среды SQL Server Management Studio нажмите кнопку New Query (Создать запрос). Эту панель можно расширить, чтобы отображать кнопки создания всех возможных запросов, а не только запросов компонента Database Engine. По умолчанию создается новый запрос компонента Database Engine, но, нажав соответствующую кнопку на панели инструментов, можно также создавать запросы MDX, XMLA и др.

Строка состояния внизу панели редактора запросов указывает статус подключения редактора к серверу. Если подключение к серверу не выполнено автоматически, при запуске редактора запросов выводится диалоговое окно подключения к серверу, в котором можно выбрать сервер для подключения и режим проверки подлинности.

Редактирование запросов в автономном режиме предоставляет больше гибкости, чем при подключении к серверу. Для редактирования запросов не обязательно подключаться к серверу, и окно редактора запросов можно отключить от одного сервера (выполнив команду меню Query --> Connection --> Disconnect) и подключить к другому, не открывая другого окна редактора. Чтобы выбрать автономный режим редактирования, в диалоговом окне подключения к серверу, открывающемуся при запуске редактора конкретного вида запросов, просто нажмите кнопку Cancel (Отмена).

Редактор запросов можно использовать для выполнения следующих задач:

создания и выполнения инструкций языка Transact-SQL;

сохранения созданных инструкций языка Transact-SQL в файл;

создания и анализирования планов выполнения общих запросов;

графического иллюстрирования плана выполнения выбранного запроса.

Редактор запросов содержит встроенный текстовый редактор и панель инструментов с набором кнопок для разных действий. Главное окно редактора запросов разделено по горизонтали на панель запросов (вверху) и панель результатов (внизу). Инструкции Transact-SQL (т.е. запросы) для исполнения вводятся в верхнюю панель, а результаты обработки системой этих запросов отображаются в нижней панели. На рисунке ниже показан пример ввода запроса в редактор запросов и результатов выполнения этого запроса:

Редактор запросов с запросом (верхняя панель) и результатами его выполнения (нижняя панель)

В первой инструкции запроса USE указывается использовать базу данных SampleDb в качестве текущей базы данных. Вторая инструкция - SELECT - извлекает все строки таблицы Employee. Чтобы выполнить этот запрос и вывести результаты, в панели инструментов редактора запросов нажмите кнопку Execute (Выполнить) или клавишу F5 .

Можно открыть несколько окон редактора запросов, т.е. выполнить несколько подключений к одному или нескольким экземплярам компонента Database Engine. Новое подключение создается нажатием кнопки New Query в панели инструментов среды SQL Server Management Studio.

В строке состояния внизу окна редактора запросов отображается следующая информация, связанная с выполнением инструкций запроса:

состояние текущей операции (например, "Запрос успешно выполнен");

имя сервера базы данных;

имя текущего пользователя и идентификатор серверного процесса;

имя текущей базы данных;

время, затраченное на выполнение последнего запроса;

количество найденных строк.

Одним из основных достоинств среды SQL Server Management Studio является легкость ее использования, что также относится и к редактору запросов Query Editor. Редактор запросов поддерживает множество возможностей, облегчающих задачу кодирования инструкций языка Transact-SQL. В частности, в нем используется подсветка синтаксиса, чтобы улучшить читаемость инструкций языка Transact-SQL. Все зарезервированные слова отображаются синим цветом, переменные - черным, строки - красным, а комментарии - зеленым.

Кроме этого, редактор запросов оснащен контекстно-зависимой справкой, называющейся Dynamic Help, посредством которой можно получить сведения о конкретной инструкции. Если вы не знаете синтаксиса инструкции, выделите ее в редакторе, а потом нажмите клавишу F1 . Также можно выделить параметры различных инструкций Transact-SQL, чтобы получить справку по ним из электронной документации.

В SQL Management Studio поддерживается инструмент SQL Intellisense, который является видом средства автозавершения. Иными словами, этот модуль предлагает наиболее вероятное завершение частично введенных элементов инструкций Transact-SQL.

С редактированием запросов может также помочь обозреватель объектов (object Explorer). Например, если вы хотите узнать, как создать инструкцию CREATE TABLE для таблицы Employee, щелкните правой кнопкой эту таблицу в обозревателе объектов и в появившемся контекстном меню выберите пункты Script Table As --> CREATE to --> New Query Editor Window (Создать скрипт для таблицы --> Используя CREATE --> Новое окно редактора запросов). Окно редактора запросов, содержащее созданную таким образом инструкцию CREATE TABLE, показано на рисунке ниже. Эта возможность также применима и с другими объектами, такими как хранимые процедуры и функции.

Окно редактора запросов, содержащее созданную в нем инструкцию create table

Обозреватель объектов очень полезен для графического отображения плана исполнения конкретного запроса. Планом выполнения запроса называется вариант выполнения, выбранный оптимизатором запроса среди нескольких возможных вариантов выполнения конкретного запроса. Введите в верхнюю панель редактора требуемый запрос, выберите последовательность команд из меню Query --> Display Estimated Execution Plan (Запрос --> Показать предполагаемый план выполнения) и в нижней панели окна редактора будет показан план выполнения данного запроса.

Обозреватель решений

Редактирование запросов в среде SQL Server Management Studio основано на методе решений (solutions). Если создать пустой запрос с помощью кнопки New Query, то он будет основан на пустом решении. Это можно увидеть, выполнив последовательность команд из меню View --> Solution Explorer сразу же после открытия пустого запроса.

Решение может быть связано ни с одним, с одним или с несколькими проектами. Пустое решение, не связано ни с каким проектом. Чтобы связать проект с решением, закройте пустое решение, обозреватель решений и редактор запросов и создайте новый проект, выполнив последовательность команд из меню File --> New --> Project. В открывшемся окне New Project выберите в средней панели опцию SQL Server Scripts. Проект - это способ организации файлов в определенном месте. Проекту можно присвоить имя и выбрать место для его расположения на диске. При создании нового проекта автоматически запускается новое решение. Проект можно добавить к существующему решению с помощью обозревателя решений.

Для каждого созданного проекта в обозревателе решений отображаются папки Connections (Соединения), Queries (Запросы) и Miscellaneous (Разное). Чтобы открыть новое окно редактора запросов для данного проекта, щелкните правой кнопкой его папку Queries и в контекстном меню выберите пункт New Query.

Отладка SQL Server

SQL Server, начиная с версии SQL Server 2008, оснащен встроенным отладчиком кода. Чтобы начать сеанс отладки, выберите в главном меню среды SQL Server Management Studio следующую последовательность команды Debug --> Start Debugging (Отладка --> Начать отладку). Мы рассмотрим работу отладчика на примере с использованием пакета команд. Пакетом называется последовательность инструкций SQL и процедурных расширений, составляющих логическое целое, отправляемая компоненту Database Engine для выполнения всех содержащихся в ней инструкций.

Отладка кода SQL

Чтобы остановить выполнение пакета на определенной инструкции, можно установить точки останова, как это показано на рисунке. Для этого нужно щелкнуть слева от строки, на которой нужно остановиться. В начале отладки выполнение останавливается на первой линии кода, которая отмечается желтой стрелкой. Чтобы продолжить выполнение и отладку, выполните команду меню Debug --> Continue (Отладка --> Продолжить). Выполнение инструкций пакета продолжится до первой точки останова, и желтая стрелка остановится на этой точке.

Информация, связанная с процессом отладки, отображается в двух панелях внизу окна редактора запросов. Информация о разных типах информации об отладке сгруппирована в этих панелях на нескольких вкладках. Левая панель содержит вкладку Autos (Автоматические), Locals (Локальные) и до пяти вкладок Watch (Видимые). Правая панель содержит вкладки Call Stack (Стек вызовов), Threads (Потоки), Breakpoints (Точки останова), Command Window (Окно команд), Immediate Window (Окно интерпретации) и Output (Вывод). На вкладке Locals отображаются значения переменных, на вкладке Call Stack - значения стека вызовов, а на вкладки Breakpoints - информация о точках останова.

Чтобы завершить процесс отладки, выполните последовательность команд из главного меню Debug --> Stop Debugging или нажмите синюю кнопку на панели инструментов отладчика.

В SQL Server 2012 функциональность встроенного в SQL Server Management Studio отладчика расширена несколькими новыми возможностями. Теперь в нем можно выполнять ряд следующих операций:

Указывать условие точки останова. Условие точки останова - это SQL-выражение, вычисленное значение которого определяет, будет ли выполнение кода остановлено в данной точке или нет. Чтобы указать условие точки останова, щелкните правой кнопкой красный значок требуемой точки и в контекстном меню выберите пункт Condition (Условие). Откроется диалоговое окно Breakpoint Condition (Условие для точки останова), в котором нужно ввести необходимое логическое выражение. Кроме этого, если нужно остановить выполнение, в случае если выражение верно, то следует установить переключатель Is True. Если же выполнение нужно остановить, если выражение изменилось, то нужно установить переключатель When Changed (Изменилось).

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

безусловное (действие по умолчанию) (Break always);

если число попаданий равно указанному значению (Break when the his count equals a specified value);

если число попаданий кратно указанному значению (Break when the hit count equals a multiple of a specified value);

если число попаданий равно или больше указанного значения (Break when the his count is greater or equal to a specified value).

Чтобы задать число попаданий в процессе отладки, щелкните правой кнопкой значок требуемой точки останова на вкладке Breakpoints, в контекстном меню выберите пункт Hit Count (Число попаданий), затем в открывшемся диалоговом окне Breakpoint Hit Count (Число попаданий в точку останова) выберите одно из условий из приведенного ранее списка. Для опций, требующих значение, введите его в текстовое поле справа от раскрывающегося списка условий. Чтобы сохранить указанные условия, нажмите кнопку OK.

Указывать фильтр точки останова. Фильтр точки останова ограничивает работу останова только на указанных компьютерах, процессах или потоках. Чтобы установить фильтр точки останова, щелкните правой кнопкой требуемую точку и в контекстном меню выберите пункт Filter. Затем в открывшемся диалоговом окне Breakpoint Filters (Фильтр точки останова) укажите ресурсы, которыми нужно ограничить выполнение данной точки останова. Чтобы сохранить указанные условия, нажмите кнопку ОК.

Чтобы указать действие при попадании в точку останова, щелкните правой кнопкой красный значок требуемой точки и выберите в контекстном меню пункт When Hit. В открывшемся диалоговом окне When Breakpoint is Hit (При попадании в точку останова) выберите требуемое действие. Чтобы сохранить указанные условия, нажмите кнопку OK.

Использовать окно быстрой проверки Quick Watch. В окне QuickWatch (Быстрая проверка) можно просмотреть значение выражения Transact-SQL, а потом сохранить это выражение в окне просмотра значений Watch (Просмотр значений). Чтобы открыть окно Quick Watch, в меню Debug выберите пункт Quick Watch. Выражение в этом окне можно или выбрать из раскрывающегося списка Expression (Выражение), или ввести его в это поле.

Использовать всплывающую подсказку Quick Info. При наведении указателя мыши на идентификатор кода средство Quick Info (Краткие сведения) отображает его объявление во всплывающем окне.

Читайте также: