Программирование в Microsoft SQL Server 2000

Анализатор запросов Query Analyzer

Разбить на страницы
Показывать лекцию целиком

Вы научитесь:

  • запускать Query Analyzer;
  • выбирать необходимые для работы базы данных;
  • выполнять операторы Transact-SQL в окне запроса Query;
  • создавать сценарии SQL;
  • открывать объекты из окна просмотра объектов Object Browser;
  • добавлять объекты в панель редактирования Editor Pane из окна Object Browser;
  • осуществлять скриптование объектов из окна Object Browser.
  • Понятие о Query Analyzer

    Хотя можно создавать и выполнять запросы и другие операторы Transact-SQL в Enterprise Manager, лучше выполнять это с помощью утилиты для администрирования базы данных. Анализатор запросов Query Analyzer в первую очередь является программным инструментом.

    Query Analyzer предоставляет мощные средства для написания и отладки сложных наборов операторов Transact-SQL различных типов. (Мы рассмотрим один из таких типов – SQL-сценарии). Query Analyzer также предоставляет средства для анализа производительности запросов посредством выполнения планов или с помощью мастера настройки индексов Index Tuning Wizard, который мы рассмотрим в уроке 23.

    Запуск Query Analyzer

    Вы можете запустить Query Analyzer из Enterprise Manager или из меню Start (Пуск) в Windows. Если вы запустили Query Analyzer из Enterprise Manager, Query Analyzer будет передавать информацию о соединении из Enterprise Manager: если вы подключены к серверу, то Query Analyzer будет соединяться с этим сервером, и если у вас по умолчанию установлена какая-либо база данных, то Query Analyzer будет выбирать именно эту базу данных.

    Совет. Для запуска Query Analyzer воспользуйтесь командой isqlw из командной строки.

    Если вы запустили Query Analyzer из меню Start (Пуск) или если вы не создали в Enterprise Manager соединения с сервером или базой данных, вы должны будете в Query Analyzer создать соединение вручную.

    Запустите Query Analyzer из Enterprise Manager

  • В Enterprise Manager в дереве консоли Console Tree найдите базу данных Aromatherapy. В рабочей панели Details Pane SQL Server отобразит список объектов базы данных.
  • В меню Tools (Сервис) выберите SQL Query Analyzer. SQL Server откроет Query Analyzer и автоматически соединиться с сервером и базой данных Aromatherapy.
  • Примечание. Если в Query Analyzer не отображается окно просмотра объектов Object Browser, нажмите F8 для его отображения.

  • Закройте Query Analyzer.
  • Запустите Query Analyzer из меню Start (Пуск)

  • В панели задач нажмите кнопку Start (Пуск).
  • Перейдите к Programs (Программы) и выберите папку Microsoft SQL Server. Откроется папка Microsoft SQL Server со списком значков.
  • Щелкните на значке Query Analyzer.Query Analyzer отобразит диалоговое окно Connect To SQL Server (Соединение с SQL Server).
  • Убедитесь в правильном выборе сервера и режима аутентификации, а затем нажмите OK. Query Analyzer соединится с сервером, а затем откроется. Query Analyzer соединится с той базой данных, которая была выбрана по умолчанию для вашей учетной записи.
  • Совет. Если ваш сервер не настроен на автоматический запуск при соединении, вы можете установить флажок Start SQL Server If It Stopped (Запускать SQL Server, если он остановлен) для включения этой опции.

    Выбор базы данных

    Query Analyzer будет использовать текущую выбранную базу данных для разрешения ссылок в запросах и других операторах Transact-SQL. Панель инструментов, показанная на рис. 21-1, содержит поле со списком, в котором отображается текущая выбранная база данных. Вы можете переключится на другую базу данных, выбрав ее имя в панели инструментов или в меню Query (Запрос).

    (рис 21.1)

    Выберите базу данных с помощью панели инструментов

  • В поле со списком панели инструментов выберите Northwind.
  • Выберите базу данных из меню Query (Запрос)

  • В меню Query (Запрос) выберите Change Database (Сменить базу данных). Query Analyzer отобразит диалоговое окно Select Database (Выбор базы данных).
  • Совет. Вы также можете воспользоваться комбинацией клавиш Ctrl + U для открытия диалогового окна Select Database (Выбор базы данных).

  • Нажмите в любое место этой таблицы для выбора базы данных Aromatherapy.
  • Нажмите OK. Query Analyzer выберет базу данных Aromatherapy.
  • Использование окна Query

    Query Analyzer первоначально отображает два окна: Object Browser (Просмотр объектов) и Query (Запрос). При запуске Query Analyzer открывается одно окно Query (Запрос), но вы в любое время можете открыть новое окно, нажав в панели инструментов Query Analyzer на кнопке New Query (Новый запрос).

    Окно Query (Запрос) отображает в строке заголовка имя сервера базы данных, текущую базу данных, текущую учетную запись и имя запроса. Окно Query (Запрос) схоже с окном конструктора запросов Query Designer в Enterprise Manager, но имеет более мощные возможности.

    В качестве редактора окно Query (Запрос) является более гибким и мощным инструментом, чем панель SQL в конструкторе запросов Query Designer. Конструктор запросов Query Designer может выполнять только ограниченное число операторов Transact-SQL, окно запроса Query может выполнять любые операторы Transact-SQL, и вы можете вводить множество операторов для их выполнения в одном пакете. Окно Query (Запрос) не поддерживает просмотр в режиме сетки Grid или в режиме диаграмм Diagram, которые доступны в конструкторе запросов Query Designer, оно поддерживает дополнительные представления запросов, которые применяются для анализа производительности, о чем мы поговорим в уроке 23.

    Окно Query (Запрос) также предоставляет возможность отображения каждого вида запроса на отдельной вкладке, а не в панели. Это является наиболее удобным способом просмотра запроса.

    Ввод операторов Transact-SQL

    Простейшим способом использования окна Query (Запрос) является ввод операторов SQL, как мы это делали в панели SQL конструктора запросов Query Designer. В отличии от окна конструктора запросов Query Designer, окно Query (Запрос) анализатора запросов Query Analyzer предоставляет некоторый дополнительный сервис, выделяя различными цветами введенные вами операторов Transact-SQL. В Таблица 21.1 приведены цвета, используемые в окне Query (Запрос).

    Цветное кодирование, используемое в окне Query анализатора запросов Query Analyzer.
    Цвет Назначение
    Синий Ключевое слово
    Темно зеленый Комментарий
    Темно красный Хранимая процедура
    Серый Оператор
    Зеленый Системная таблица
    Пурпурный Системная функция
    Красный Символьная строка

    Выполните запрос SELECT

  • В окне Query введите следующий оператор SELECT:
    SELECT OilName, LEFT(LatinName, 10)
    FROM Oils
  • Окно Query (Запрос) изменит цвет введенного текста.
  • В панели инструментов анализатора запросов Query Analyzer нажмите на кнопке Execute Query (Выполнить запрос).Анализатор запросов Query Analyzer добавит в окно Query (Запрос) панель, содержащую две вкладки: вкладку Grids (Сетка), содержащую результаты запроса и вкладку Messages (Сообщения), содержащую сообщения.
  • Выберите вкладку Messages(Сообщения). Окно Query (Запрос) отобразит сообщения, сформированные запросом.
  • Отобразите результаты запроса в отдельной таблице

  • В меню Tools (Сервис) анализатора запросов Query Analyzer выберите Options (Параметры). Query Analyzer отобразит диалоговое окно Options (Параметры).
  • Выберите вкладку Editor (Редактор)
  • Установите флажок Tabbed Mode (Vs. Splitter Mode).
  • Нажмите OK. Query Analyzer изменит способ отображения окна Query (Запрос).
  • Использование сценариев SQL

    Сценарий (script) представляет собой набор операторов Transact-SQL, хранимых в файле. Сценарии часто используются для постоянного хранения команд для записей, используемых для создания и заполнения объектов базы данных. Поскольку сценарии хранятся в тестовом файле, а не в базе данных, то они могут быть использованы для воссоздания базы данных на других серверах. (SQL Server использовал сценарии для создания шаблонных баз данных Pubs и Northwind).

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

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

    Создайте сценарий

  • В окне Query (Запрос) измените оператор SQL, как показано ниже:
    SELECT OilName, LEFT(LatinName, 10)
    FROM Oils
    GO
    SELECT PlantPartID, PlantPart
    FROM PlantParts
  • Примечание. В запрос, использовавшийся в предыдущем упражнении, были добавлены только три последние строки.

  • В панели инструментов анализатора запросов Query Analyzer нажмите кнопку Execute Query (Выполнить запрос). Query Analyzer отобразит результат в двух панелях вкладки Grids (Сетка) окна Query (Запрос).
  • В окне Query (Запрос) выберите вкладку Editor (Редактор) и нажмите кнопку Save (Сохранть)в панели инструментов анализатора запросов Query Analyzer. Query Analyzer отобразит диалоговое окно Save Query (Сохранение запроса).
  • Примечание. Если вы не выберите вкладку Editor (Редактор) перед нажатием кнопки Save (Сохранть), анализатор запросов Query Analyzer сохранит результаты выполнения запроса, а не сам запрос.

  • Перейдите к папке SQL 2000 Step By Step в корневой директории и присвойте сценарию имя Lesson21.
  • Нажмите Save (Сохранить). Query Analyzer сохранит новый файл сценария.
  • Откройте сценарий

  • В панели инструментов анализатора запросов Query Analyzer нажмите кнопку New Query (Новый запрос).Query Analyzer откроет новое пустое окно Query (Зарос).
  • Нажмите кнопку Open (Открыть)в панели инструментов анализатора запросов Query Analyzer. Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).
  • В корневой директории найдите и откройте папку SQL 2000 Step by Step, и выберите Lesson21.
  • Нажмите Open (Открыть). Query Analyzer отобразит сценарий в окне Query (Запрос).
  • В панели инструментов анализатора запросов Query Analyzer нажмите кнопку Execute Query (Выполнить запрос)для запуска сценария. Query Analyzer отобразит результаты во вкладке Grids (Сетка).
  • Закройте окно сценария.
  • Использование Object Browser

    Средство Object Browser представляет собой панель в левой части окна анализатора запросов Query Analyzer. Подобно тому, как дерево консоли Console Tree в Enterprise Manager предоставляет иерархическое отображение объектов в установленном экземпляре SQL Server, так и вкладка Objects (Объекты) в Object Browser отображает иерархическое представление баз данных на сервере, с которым вы соединяетесь, а также другие распространенные объекты, используемые при создании программ Transact-SQL.

    Совет. Вкладка Templates (Шаблоны) в Object Browser показывает в иерархическом порядке доступные программные шаблоны. Шаблоны мы рассмотрим в следующем уроке.

    Вкладка Objects (Объекты) в Object Browser несколько отличается от дерева консоли Console Tree в Enterprise Manager. В списке отображаются только объекты базы данных, поэтому такие элементы, как Logins (Учетные записи) и Data Transformation Services (Службы преобразования данных), невидимы. Для удобства таблицы в базе данных размещены в двух папках: User Tables (Пользовательские таблицы) и System Tables (Системные таблицы).

    Также, в отличие от простого отображения списка таблиц базы данных в, как это имеет место в дереве консоли Console Tree Enterprise Manager, Object Browser отображает столбцы, индексы, ограничения и триггеры, которые вы установили для таблицы, а также зависимости, представления и таблицы, которые зависят от данной таблицы. На рис. 21-2 показано, Object Browser отображает таблицу Oils.

    (рис 21.2) Object Browser отображает информацию о таблице из вашей базы данных, которая полезна с точки зрения программирования.

    В Object Browser папка Common Objects содержит встроенные типы данных и набор основных функций Transact-SQL сгруппированных в категории. Для каждой функции папка Parameters содержит описание каждого параметра, включая его имя и тип данных. На рис. 21-3 представлена функция LEFT, как она отображена в окне Object Browser.

    (рис 21.3) Object Browser отображает в папке Common Objects функции по категориям.

    Используя Object Browser, вы можете открывать таблицу или представление подобно тому, как вы отображаете строки в конструкторе запросов Query Designer в Enterprise Manager. При этом возможно просматривать строки, или же вставлять новые или редактировать существующие строки.

    Вы также можете использовать Object Browser для создания программ на Transact-SQL. Вы можете добавлять объекты в окно Query (Запрос), используя технику "перетащить-и-оставить" (drag-and-drop), а также автоматически создавать несколько разных типов сценариев из контекстного меню.

    Открытие объектов

    Если вы в Object Browser нажмете правой кнопкой мыши на таблице или представлении и выберите Open (Открыть), анализатор запросов Query Analyzer отобразит строки в таблице (или результаты выполнения оператора SELECT для представления) в окне Open Table (Открытие таблицы).

    Откройте таблицу

  • В Object Browser раскройте папку User Tables базы данных Aromatherapy. Query Analyzer отобразит список таблиц базы данных.
  • Правой кнопкой мыши щелкните на dbo.PlantParts и выберите Open (Открыть). Query Analyzer отобразит в окне Open Table (Открытие таблицы) строки из таблицы.
  • Закончив просмотр строк в таблице, закройте окно Open Table (Открытие таблицы).
  • Откройте представление

  • В Object Browser раскройте папку Views базы данных Aromatherapy. Query Analyzer отобразит список всех представлений в базе данных.
  • Правой кнопкой мыши щелкните на dbo.OilCautionsExtented и выберите Open (Открыть). Query Analyzer отобразит ряды, возвращенные после запроса, в окне Open Table (Открытие таблицы).
  • Закончив просмотр строк в таблице, закройте окно Open Table (Открытие таблицы).
  • Добавление объектов в панель редактирования Editor Pane

    Наиболее простой и удобной возможностью при работе в Object Browser является использование приема "перетащить-и-оставить". Всякий раз, когда вам необходимо задать объект в Object Browser, вам достаточно просто перетащите его в панель редактирования Editor Pane окна Query (Запрос), и его имя будет вставлено в окно редактирования.

    Совет. Если вы перетащили одну из функций, отображенную в папке Common Objects, Object Browser вставит только имя функции, без параметров. Для вставки полного синтаксиса функции используйте команду Scripting, которую мы рассмотрим в следующем разделе.

    Добавьте объект базы данных

  • Выберите окно Query (Запрос), убедитесь, что вкладка Editor (Редактор) открыта, а затем в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Clear Window (Очистить окно).Query Analyzer очистит панель редактирования Editor Pane.
  • В панели редактирования Editor Pane введите следующий оператор SQL (не забудьте поставить пробел после FROM ):
    SELECT *
    FROM
  • В Object Browser раскройте папку User Tables.
  • Перетащите таблицу dbo.Properties из панели Object Browser в панель редактирования Editor Pane и поместите ее после слова FROM. Query Analyzer вставит имя таблицы в оператор.
  • Нажмите на кнопке Execute Query (Выполнить запрос)для выполнения запроса. Query Analyzer отобразит результаты в панели сетки Grids Pane.
  • Добавьте в папку все объекты

  • В окне Query (Запрос) выберите еще раз вкладку Editor (Редактор).
  • Удалите
  • В Object Browser раскройте папку dbo.Properties.
  • Перетащите папку Columns из панели Object Browser в панель редактирования Editor Pane и вставьте ее после слова
  • Для выполнения запроса нажмите кнопку Execute Query (Выполнить запрос)в панели инструментов анализатора запросов Query Analyzer. Query Analyzer отобразит результаты в панели сетки Grids Pane.
  • Скриптование объектов

    Скриптование (создание сценария действия) является более сложной версией приема "перетащить-и-оставить" Object Browser. Скриптование создает полный оператор Transact-SQL и может выполняться из контекстного меню большинства объектов. Не все типы сценариев применимы ко всем типам объектов, а к таким типам, как параметры функции или столбцы, операция скриптования не может быть применена вообще.

    Имеющиеся сценарии и объекты, к которым они могут быть применены, представлены в Таблице 21.2. Большинство из этих сценариев мы рассмотрим в следующем уроке, посвященном созданию и обслуживанию объектов базы данных.

    Опции скриптования
    Команда сценария Объекты
    Create (Cоздать) Таблица, индекс, ограничение, триггер, представление, хранимая процедура
    Alter (Изменить) Триггер, вид
    Drop (Изъять) Таблица, индекс, ограничение, триггер, представление, хранимая процедура
    Select (Выбрать) Таблица, представление
    Insert (Вставить) Таблица, представление
    Update (Обновить) Таблица, представление
    Delete (Удалить) Таблица, представление
    Execute (Выполнить) Хранимая процедура, функция

    Сценарии могут быть записаны в новое окне Query (Запрос), в файл сценария или в буфер обмена (откуда они могут быть вставлены в существующее окно запроса Query). Некоторые сценарии, такие как сценарии выполнения функции, используют замещаемые параметры. Query Analyzer предоставляет диалоговое окно для удобства замещения этих параметров соответствующими значениями.

    Напишите сценарий для оператора SELECT

  • В Object Browser в базе данных Aromatherapy раскройте папку User Tables.
  • Правой кнопкой мыши щелкните на таблице dbo.OilProperties, укажите на Script Object To New Window As (Описать объект в новом окне как) и выберите Select (Выбрать). Query Analyzer откроет новое окно Query (Запрос), содержащий оператор
  • Совет. Object Browser создает оператор SELECT в отдельной строке. Для удобства вы можете отредактировать его, что показано на рисунке.

  • Для выполнения запроса нажмите кнопку Execute Query (Выполнить запрос)в панели инструментов анализатора запросов Query Analyzer. Query Analyzer отобразит результаты в панели сетки Grids Pane.
  • После завершения работы с запросом закройте окно Query (Запрос).
  • Напишите сценарий для функции

  • В папке Common Objects раскройте папку String Functions.
  • Правой кнопкой мыши щелкните на функции
  • В меню Edit (Правка) выберите Replace Template Parameters (Заместить шаблонные параметры).
  • Для параметра character_expression введите значение 'Test Expression', а для параметра integer_expression введите значение 4.
  • Нажмите Replace All (Заместить все). Query Analyzer заместит параметры в запрос.
  • Для выполнения запроса нажмите кнопку Execute Query (Выполнить запрос)в панели инструментов анализатора запросов Query Analyzer. Query Analyzer отобразит результаты в панели сетки Grids Pane.
  • Краткое содержание

    Чтобы... Сделайте следующее Кнопка
    Запустить Query Analyzer В панели задач нажмите кнопку Start (Пуск). Выберите Programs (Программы), затем Microsoft SQL Server и затем нажмите на Query Analyzer.
    Выбрать базу данных для работы В панели инструментов анализатора запросов Query Analyzer в поле со списком выберите новую базу данных.
    Выполнить в окне Query (Запрос) оператор Transact-SQL В панели редактирования Editor Pane введите оператор, а затем в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Execute Query (Выполнить запрос).
    Создать SQL-сценарий В окне Query (Запрос) введите операторы Transact-SQL, а затем в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Save (Сохранить).
    Загрузить SQL-сценарий В Query Analyzer нажмите кнопку Open (Открыть), а затем в диалоговом окне Open Script (Открытие сценария) выберите сценарий.
    Открыть представление или таблицу в Object Browser Правой кнопкой мыши щелкните на таблице или представлении в панели Object Browser, а затем выберите Open (Открыть).
    Добавить объект из Object Browser в панель редактирования Editor Pane Перетащите объект из панели Object Browser и поместите его в нужное место в панели редактирования Editor Pane.
    Выполнить скриптование объекта из Object Browser В Object Browser щелкните правой кнопкой мыши на объекте, укажите на Script Object to <destination> As (Описать объект в <место_помещения> как) и выберите желаемый тип сценария.
    Страницы:

    Вы научитесь:

  • запускать Query Analyzer;
  • выбирать необходимые для работы базы данных;
  • выполнять операторы Transact-SQL в окне запроса Query;
  • создавать сценарии SQL;
  • открывать объекты из окна просмотра объектов Object Browser;
  • добавлять объекты в панель редактирования Editor Pane из окна Object Browser;
  • осуществлять скриптование объектов из окна Object Browser.
  • Понятие о Query Analyzer

    Хотя можно создавать и выполнять запросы и другие операторы Transact-SQL в Enterprise Manager, лучше выполнять это с помощью утилиты для администрирования базы данных. Анализатор запросов Query Analyzer в первую очередь является программным инструментом.

    Query Analyzer предоставляет мощные средства для написания и отладки сложных наборов операторов Transact-SQL различных типов. (Мы рассмотрим один из таких типов – SQL-сценарии). Query Analyzer также предоставляет средства для анализа производительности запросов посредством выполнения планов или с помощью мастера настройки индексов Index Tuning Wizard, который мы рассмотрим в уроке 23.

    Запуск Query Analyzer

    Вы можете запустить Query Analyzer из Enterprise Manager или из меню Start (Пуск) в Windows. Если вы запустили Query Analyzer из Enterprise Manager, Query Analyzer будет передавать информацию о соединении из Enterprise Manager: если вы подключены к серверу, то Query Analyzer будет соединяться с этим сервером, и если у вас по умолчанию установлена какая-либо база данных, то Query Analyzer будет выбирать именно эту базу данных.

    Совет. Для запуска Query Analyzer воспользуйтесь командой isqlw из командной строки.

    Если вы запустили Query Analyzer из меню Start (Пуск) или если вы не создали в Enterprise Manager соединения с сервером или базой данных, вы должны будете в Query Analyzer создать соединение вручную.

    Запустите Query Analyzer из Enterprise Manager

  • В Enterprise Manager в дереве консоли Console Tree найдите базу данных Aromatherapy. В рабочей панели Details Pane SQL Server отобразит список объектов базы данных.
  • В меню Tools (Сервис) выберите SQL Query Analyzer. SQL Server откроет Query Analyzer и автоматически соединиться с сервером и базой данных Aromatherapy.
  • Примечание. Если в Query Analyzer не отображается окно просмотра объектов Object Browser, нажмите F8 для его отображения.

  • Закройте Query Analyzer.
  • Запустите Query Analyzer из меню Start (Пуск)

  • В панели задач нажмите кнопку Start (Пуск).
  • Перейдите к Programs (Программы) и выберите папку Microsoft SQL Server. Откроется папка Microsoft SQL Server со списком значков.
  • Щелкните на значке Query Analyzer.Query Analyzer отобразит диалоговое окно Connect To SQL Server (Соединение с SQL Server).
  • Убедитесь в правильном выборе сервера и режима аутентификации, а затем нажмите OK. Query Analyzer соединится с сервером, а затем откроется. Query Analyzer соединится с той базой данных, которая была выбрана по умолчанию для вашей учетной записи.
  • Совет. Если ваш сервер не настроен на автоматический запуск при соединении, вы можете установить флажок Start SQL Server If It Stopped (Запускать SQL Server, если он остановлен) для включения этой опции.

    Выбор базы данных

    Query Analyzer будет использовать текущую выбранную базу данных для разрешения ссылок в запросах и других операторах Transact-SQL. Панель инструментов, показанная на рис. 21-1, содержит поле со списком, в котором отображается текущая выбранная база данных. Вы можете переключится на другую базу данных, выбрав ее имя в панели инструментов или в меню Query (Запрос).

    (рис 21.1)

    Выберите базу данных с помощью панели инструментов

  • В поле со списком панели инструментов выберите Northwind.
  • Выберите базу данных из меню Query (Запрос)

  • В меню Query (Запрос) выберите Change Database (Сменить базу данных). Query Analyzer отобразит диалоговое окно Select Database (Выбор базы данных).
  • Совет. Вы также можете воспользоваться комбинацией клавиш Ctrl + U для открытия диалогового окна Select Database (Выбор базы данных).

  • Нажмите в любое место этой таблицы для выбора базы данных Aromatherapy.
  • Нажмите OK. Query Analyzer выберет базу данных Aromatherapy.
  • Использование окна Query

    Query Analyzer первоначально отображает два окна: Object Browser (Просмотр объектов) и Query (Запрос). При запуске Query Analyzer открывается одно окно Query (Запрос), но вы в любое время можете открыть новое окно, нажав в панели инструментов Query Analyzer на кнопке New Query (Новый запрос).

    Окно Query (Запрос) отображает в строке заголовка имя сервера базы данных, текущую базу данных, текущую учетную запись и имя запроса. Окно Query (Запрос) схоже с окном конструктора запросов Query Designer в Enterprise Manager, но имеет более мощные возможности.

    В качестве редактора окно Query (Запрос) является более гибким и мощным инструментом, чем панель SQL в конструкторе запросов Query Designer. Конструктор запросов Query Designer может выполнять только ограниченное число операторов Transact-SQL, окно запроса Query может выполнять любые операторы Transact-SQL, и вы можете вводить множество операторов для их выполнения в одном пакете. Окно Query (Запрос) не поддерживает просмотр в режиме сетки Grid или в режиме диаграмм Diagram, которые доступны в конструкторе запросов Query Designer, оно поддерживает дополнительные представления запросов, которые применяются для анализа производительности, о чем мы поговорим в уроке 23.

    Окно Query (Запрос) также предоставляет возможность отображения каждого вида запроса на отдельной вкладке, а не в панели. Это является наиболее удобным способом просмотра запроса.

    Ввод операторов Transact-SQL

    Простейшим способом использования окна Query (Запрос) является ввод операторов SQL, как мы это делали в панели SQL конструктора запросов Query Designer. В отличии от окна конструктора запросов Query Designer, окно Query (Запрос) анализатора запросов Query Analyzer предоставляет некоторый дополнительный сервис, выделяя различными цветами введенные вами операторов Transact-SQL. В Таблица 21.1 приведены цвета, используемые в окне Query (Запрос).

    Цветное кодирование, используемое в окне Query анализатора запросов Query Analyzer.
    Цвет Назначение
    Синий Ключевое слово
    Темно зеленый Комментарий
    Темно красный Хранимая процедура
    Серый Оператор
    Зеленый Системная таблица
    Пурпурный Системная функция
    Красный Символьная строка

    Выполните запрос SELECT

  • В окне Query введите следующий оператор SELECT:
    SELECT OilName, LEFT(LatinName, 10)
    FROM Oils
  • Окно Query (Запрос) изменит цвет введенного текста.
  • В панели инструментов анализатора запросов Query Analyzer нажмите на кнопке Execute Query (Выполнить запрос).Анализатор запросов Query Analyzer добавит в окно Query (Запрос) панель, содержащую две вкладки: вкладку Grids (Сетка), содержащую результаты запроса и вкладку Messages (Сообщения), содержащую сообщения.
  • Выберите вкладку Messages(Сообщения). Окно Query (Запрос) отобразит сообщения, сформированные запросом.
  • Отобразите результаты запроса в отдельной таблице

  • В меню Tools (Сервис) анализатора запросов Query Analyzer выберите Options (Параметры). Query Analyzer отобразит диалоговое окно Options (Параметры).
  • Выберите вкладку Editor (Редактор)
  • Установите флажок Tabbed Mode (Vs. Splitter Mode).
  • Нажмите OK. Query Analyzer изменит способ отображения окна Query (Запрос).
  • Использование сценариев SQL

    Сценарий (script) представляет собой набор операторов Transact-SQL, хранимых в файле. Сценарии часто используются для постоянного хранения команд для записей, используемых для создания и заполнения объектов базы данных. Поскольку сценарии хранятся в тестовом файле, а не в базе данных, то они могут быть использованы для воссоздания базы данных на других серверах. (SQL Server использовал сценарии для создания шаблонных баз данных Pubs и Northwind).

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

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

    Создайте сценарий

  • В окне Query (Запрос) измените оператор SQL, как показано ниже:
    SELECT OilName, LEFT(LatinName, 10)
    FROM Oils
    GO
    SELECT PlantPartID, PlantPart
    FROM PlantParts
  • Примечание. В запрос, использовавшийся в предыдущем упражнении, были добавлены только три последние строки.

  • В панели инструментов анализатора запросов Query Analyzer нажмите кнопку Execute Query (Выполнить запрос). Query Analyzer отобразит результат в двух панелях вкладки Grids (Сетка) окна Query (Запрос).
  • В окне Query (Запрос) выберите вкладку Editor (Редактор) и нажмите кнопку Save (Сохранть)в панели инструментов анализатора запросов Query Analyzer. Query Analyzer отобразит диалоговое окно Save Query (Сохранение запроса).
  • Примечание. Если вы не выберите вкладку Editor (Редактор) перед нажатием кнопки Save (Сохранть), анализатор запросов Query Analyzer сохранит результаты выполнения запроса, а не сам запрос.

  • Перейдите к папке SQL 2000 Step By Step в корневой директории и присвойте сценарию имя Lesson21.
  • Нажмите Save (Сохранить). Query Analyzer сохранит новый файл сценария.
  • Откройте сценарий

  • В панели инструментов анализатора запросов Query Analyzer нажмите кнопку New Query (Новый запрос).Query Analyzer откроет новое пустое окно Query (Зарос).
  • Нажмите кнопку Open (Открыть)в панели инструментов анализатора запросов Query Analyzer. Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).
  • В корневой директории найдите и откройте папку SQL 2000 Step by Step, и выберите Lesson21.
  • Нажмите Open (Открыть). Query Analyzer отобразит сценарий в окне Query (Запрос).
  • В панели инструментов анализатора запросов Query Analyzer нажмите кнопку Execute Query (Выполнить запрос)для запуска сценария. Query Analyzer отобразит результаты во вкладке Grids (Сетка).
  • Закройте окно сценария.
  • Использование Object Browser

    Средство Object Browser представляет собой панель в левой части окна анализатора запросов Query Analyzer. Подобно тому, как дерево консоли Console Tree в Enterprise Manager предоставляет иерархическое отображение объектов в установленном экземпляре SQL Server, так и вкладка Objects (Объекты) в Object Browser отображает иерархическое представление баз данных на сервере, с которым вы соединяетесь, а также другие распространенные объекты, используемые при создании программ Transact-SQL.

    Совет. Вкладка Templates (Шаблоны) в Object Browser показывает в иерархическом порядке доступные программные шаблоны. Шаблоны мы рассмотрим в следующем уроке.

    Вкладка Objects (Объекты) в Object Browser несколько отличается от дерева консоли Console Tree в Enterprise Manager. В списке отображаются только объекты базы данных, поэтому такие элементы, как Logins (Учетные записи) и Data Transformation Services (Службы преобразования данных), невидимы. Для удобства таблицы в базе данных размещены в двух папках: User Tables (Пользовательские таблицы) и System Tables (Системные таблицы).

    Также, в отличие от простого отображения списка таблиц базы данных в, как это имеет место в дереве консоли Console Tree Enterprise Manager, Object Browser отображает столбцы, индексы, ограничения и триггеры, которые вы установили для таблицы, а также зависимости, представления и таблицы, которые зависят от данной таблицы. На рис. 21-2 показано, Object Browser отображает таблицу Oils.

    (рис 21.2) Object Browser отображает информацию о таблице из вашей базы данных, которая полезна с точки зрения программирования.

    В Object Browser папка Common Objects содержит встроенные типы данных и набор основных функций Transact-SQL сгруппированных в категории. Для каждой функции папка Parameters содержит описание каждого параметра, включая его имя и тип данных. На рис. 21-3 представлена функция LEFT, как она отображена в окне Object Browser.

    (рис 21.3) Object Browser отображает в папке Common Objects функции по категориям.

    Используя Object Browser, вы можете открывать таблицу или представление подобно тому, как вы отображаете строки в конструкторе запросов Query Designer в Enterprise Manager. При этом возможно просматривать строки, или же вставлять новые или редактировать существующие строки.

    Вы также можете использовать Object Browser для создания программ на Transact-SQL. Вы можете добавлять объекты в окно Query (Запрос), используя технику "перетащить-и-оставить" (drag-and-drop), а также автоматически создавать несколько разных типов сценариев из контекстного меню.

    Открытие объектов

    Если вы в Object Browser нажмете правой кнопкой мыши на таблице или представлении и выберите Open (Открыть), анализатор запросов Query Analyzer отобразит строки в таблице (или результаты выполнения оператора SELECT для представления) в окне Open Table (Открытие таблицы).

    Откройте таблицу

  • В Object Browser раскройте папку User Tables базы данных Aromatherapy. Query Analyzer отобразит список таблиц базы данных.
  • Правой кнопкой мыши щелкните на dbo.PlantParts и выберите Open (Открыть). Query Analyzer отобразит в окне Open Table (Открытие таблицы) строки из таблицы.
  • Закончив просмотр строк в таблице, закройте окно Open Table (Открытие таблицы).
  • Откройте представление

  • В Object Browser раскройте папку Views базы данных Aromatherapy. Query Analyzer отобразит список всех представлений в базе данных.
  • Правой кнопкой мыши щелкните на dbo.OilCautionsExtented и выберите Open (Открыть). Query Analyzer отобразит ряды, возвращенные после запроса, в окне Open Table (Открытие таблицы).
  • Закончив просмотр строк в таблице, закройте окно Open Table (Открытие таблицы).
  • Добавление объектов в панель редактирования Editor Pane

    Наиболее простой и удобной возможностью при работе в Object Browser является использование приема "перетащить-и-оставить". Всякий раз, когда вам необходимо задать объект в Object Browser, вам достаточно просто перетащите его в панель редактирования Editor Pane окна Query (Запрос), и его имя будет вставлено в окно редактирования.

    Совет. Если вы перетащили одну из функций, отображенную в папке Common Objects, Object Browser вставит только имя функции, без параметров. Для вставки полного синтаксиса функции используйте команду Scripting, которую мы рассмотрим в следующем разделе.

    Добавьте объект базы данных

  • Выберите окно Query (Запрос), убедитесь, что вкладка Editor (Редактор) открыта, а затем в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Clear Window (Очистить окно).Query Analyzer очистит панель редактирования Editor Pane.
  • В панели редактирования Editor Pane введите следующий оператор SQL (не забудьте поставить пробел после FROM ):
    SELECT *
    FROM
  • В Object Browser раскройте папку User Tables.
  • Перетащите таблицу dbo.Properties из панели Object Browser в панель редактирования Editor Pane и поместите ее после слова FROM. Query Analyzer вставит имя таблицы в оператор.
  • Нажмите на кнопке Execute Query (Выполнить запрос)для выполнения запроса. Query Analyzer отобразит результаты в панели сетки Grids Pane.
  • Добавьте в папку все объекты

  • В окне Query (Запрос) выберите еще раз вкладку Editor (Редактор).
  • Удалите
  • В Object Browser раскройте папку dbo.Properties.
  • Перетащите папку Columns из панели Object Browser в панель редактирования Editor Pane и вставьте ее после слова
  • Для выполнения запроса нажмите кнопку Execute Query (Выполнить запрос)в панели инструментов анализатора запросов Query Analyzer. Query Analyzer отобразит результаты в панели сетки Grids Pane.
  • Скриптование объектов

    Скриптование (создание сценария действия) является более сложной версией приема "перетащить-и-оставить" Object Browser. Скриптование создает полный оператор Transact-SQL и может выполняться из контекстного меню большинства объектов. Не все типы сценариев применимы ко всем типам объектов, а к таким типам, как параметры функции или столбцы, операция скриптования не может быть применена вообще.

    Имеющиеся сценарии и объекты, к которым они могут быть применены, представлены в Таблице 21.2. Большинство из этих сценариев мы рассмотрим в следующем уроке, посвященном созданию и обслуживанию объектов базы данных.

    Опции скриптования
    Команда сценария Объекты
    Create (Cоздать) Таблица, индекс, ограничение, триггер, представление, хранимая процедура
    Alter (Изменить) Триггер, вид
    Drop (Изъять) Таблица, индекс, ограничение, триггер, представление, хранимая процедура
    Select (Выбрать) Таблица, представление
    Insert (Вставить) Таблица, представление
    Update (Обновить) Таблица, представление
    Delete (Удалить) Таблица, представление
    Execute (Выполнить) Хранимая процедура, функция

    Сценарии могут быть записаны в новое окне Query (Запрос), в файл сценария или в буфер обмена (откуда они могут быть вставлены в существующее окно запроса Query). Некоторые сценарии, такие как сценарии выполнения функции, используют замещаемые параметры. Query Analyzer предоставляет диалоговое окно для удобства замещения этих параметров соответствующими значениями.

    Напишите сценарий для оператора SELECT

  • В Object Browser в базе данных Aromatherapy раскройте папку User Tables.
  • Правой кнопкой мыши щелкните на таблице dbo.OilProperties, укажите на Script Object To New Window As (Описать объект в новом окне как) и выберите Select (Выбрать). Query Analyzer откроет новое окно Query (Запрос), содержащий оператор
  • Совет. Object Browser создает оператор SELECT в отдельной строке. Для удобства вы можете отредактировать его, что показано на рисунке.

  • Для выполнения запроса нажмите кнопку Execute Query (Выполнить запрос)в панели инструментов анализатора запросов Query Analyzer. Query Analyzer отобразит результаты в панели сетки Grids Pane.
  • После завершения работы с запросом закройте окно Query (Запрос).
  • Напишите сценарий для функции

  • В папке Common Objects раскройте папку String Functions.
  • Правой кнопкой мыши щелкните на функции
  • В меню Edit (Правка) выберите Replace Template Parameters (Заместить шаблонные параметры).
  • Для параметра character_expression введите значение 'Test Expression', а для параметра integer_expression введите значение 4.
  • Нажмите Replace All (Заместить все). Query Analyzer заместит параметры в запрос.
  • Для выполнения запроса нажмите кнопку Execute Query (Выполнить запрос)в панели инструментов анализатора запросов Query Analyzer. Query Analyzer отобразит результаты в панели сетки Grids Pane.
  • Краткое содержание

    Чтобы... Сделайте следующее Кнопка
    Запустить Query Analyzer В панели задач нажмите кнопку Start (Пуск). Выберите Programs (Программы), затем Microsoft SQL Server и затем нажмите на Query Analyzer.
    Выбрать базу данных для работы В панели инструментов анализатора запросов Query Analyzer в поле со списком выберите новую базу данных.
    Выполнить в окне Query (Запрос) оператор Transact-SQL В панели редактирования Editor Pane введите оператор, а затем в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Execute Query (Выполнить запрос).
    Создать SQL-сценарий В окне Query (Запрос) введите операторы Transact-SQL, а затем в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Save (Сохранить).
    Загрузить SQL-сценарий В Query Analyzer нажмите кнопку Open (Открыть), а затем в диалоговом окне Open Script (Открытие сценария) выберите сценарий.
    Открыть представление или таблицу в Object Browser Правой кнопкой мыши щелкните на таблице или представлении в панели Object Browser, а затем выберите Open (Открыть).
    Добавить объект из Object Browser в панель редактирования Editor Pane Перетащите объект из панели Object Browser и поместите его в нужное место в панели редактирования Editor Pane.
    Выполнить скриптование объекта из Object Browser В Object Browser щелкните правой кнопкой мыши на объекте, укажите на Script Object to <destination> As (Описать объект в <место_помещения> как) и выберите желаемый тип сценария.
    Вернуться к учебному плану