Инструментарий разработчика: SQL AssistantИсточник: habrahabr Olegon
Я работаю разработчиком БД (MS SQL) и большая часть моей работы, это написание кода на T-SQL. Работая в Query Analyzer, а затем в Management Studio (2005, 2008, 2008R2) мне очень сильно не хватало функций редактора и дополнительных функций среды разработки, направленных именно на процесс написания кода, построения запросов и т.п… По сравнению с MS Visual Studio или Embarcadero RAD Studio, что мог предложить Query Analyzer? Изменить отступ блока кода, изменить регистр выделенного текста, закомментировать и отменить комментирование блока кода, перетащить название таблицы или поля (полей) в окно редактора, заскриптовать выбранный объект. А ведь так не хватало полноценного IntelliSense. Всех этих удобных функций по автодополнению, интерактивных подсказок к набираемому коду, выбор из списка объектов и т.п. С выходом MS Management Studio 2005 ситуация не изменилась. И только в MS Management 2008 появился Transact-SQL IntelliSense. Да, появилось автозавершение набираемого слова, предоставление списка объектов БД и полей таблицы, подсветка синтаксических пар (begin… end, ()). Но уже до этого я стал пользоваться сторонней утилитой SQL Assistant от SoftTree Technologies. На фоне возможностей, которые предоставляет SQL Assistant родной IntelliSense просто дубовый. А разве можно получить что-то большего, ведь это SQL, а не объектно-ориентированный язык? Можно! В этой статье я хотел бы рассказать об утилите SQL Assistant, а точнее о функция и приемах, которые я использую при написании SQL-кода. ТеорияSQL Assistant - инструментарий для разработчиков и администраторов баз данных. Может использоваться при работе над проектами любой степени сложности, от небольших баз данных до комплексных корпоративных систем. Программное обеспечение оказывается готовым к эксплуатации немедленно после установки и не предполагает приостановки текущих рабочих процессов. Инструментарий повышает продуктивность труда SQL-разработчиков и гарантирует высокое качество кода. В том числе в состав пакета входят превосходные инструменты для проверки правильности SQL-синтаксиса, механизмы автозавершения синтаксических конструкций, средства быстрой навигации по программному коду и многое другое. В распоряжении пользователей также окажется интегрированный блок проверки правописания. Среди других достоинств продукта стоит упомянуть поддержку наиболее распространенных СУБД (Oracle, SQL Server, DB2, MySQL, Sybase ASE, Sybase ASA, MS Access и соответствующих SQL-диалектов). SQL Assistant встраивается в Management Studio и через пункт главного меню или через контекстное меню редактора кода доступны все его команды.
Вот основные функции:
Основную информацию можно найти на официальном сайте и в документации (ссылки в конце статьи). А здесь я хочу рассказать о самом главной функции этой утилиты, самом ассистенте - контекстно-зависимое всплывающее окошко, которое появляется в редакторе кода.
ПрактикаАссистент оказывает помощь в зависимости от места, где его вызывали, начиная от подсказок для автодополнения набираемых слов и заканчивая построения связей между таблицами. На написание запроса со связкой нескольких таблиц уходит намного меньше времени. Уже не ошибешься в названии таблиц и полей, нет необходимости помнить поля первичного ключа и поля внешних ключей для построения связей. Необходимо только указывать названия таблиц из списка, а SQL Assitant сам закончит конструкцию join на основе выбранного внешнего ключа.
Начинаю писать запрос с секции from. Указан название первой таблицы, набираю inner join и ассистент в окошке показывает список таблиц, на которые существует внешние ключи из таблицы Product. Красным подсвечены поля, по которым будет выполнено соединение двух таблиц. Выбираю соединение с таблице ProductInventory и получаю код:
SELECT Далее продолжаю построение запроса, набираю inner join и ассистент показывает список таблиц, на которые существуют внешние ключи уже из таблицы ProductInventory, но так же доступны и соединения от таблицы Product.
Построение связей работает в именно в разделе from, т.е. и для select, insert, delete, update. Если необходимо построить соединение между таблицам не связанными внешним ключом, то необходимо указать эти таблицы и SQL Assistant может предложить построить связь по полям с одинаковыми названиями. Полученный код запроса:
SELECT Приводиться в нужный вид с помощью функции форматирования. Правила форматирования кода настраиваемые.
SELECT Переместив курсор в раздел select ассистент покажет подсказку для выбора полей, которые будут включены в выборку, из таблиц, перечисленных в разделе from. Такой же принцип в любом разделе запроса (where, group by, order by).
Кроме информации о типе поля, для полей, составляющие первичный ключ отображается иконка в виде желтого ключика, зеленый ключик - поля внешнего ключа, молния - по полю построен индекс. Вообще, в списке могут отображаться следующие объекты их составляющие:
Все зависит от контекста вызова помощника. Так, если написать конструкцию insert Production.Product то при вызове помощника можно выбрать нужные поля таблицы, для которой пишется оператор insert.
Но удобнее воспользоваться помощником в момент написания самого оператора. После того, как я написал оператор insert помощник предлагает мне выбрать объект БД.
После того, как я выберу нужную таблицу, автоматически получу вот такой код:
INSERT INTO Production.Location Похожим образом получается и с оператором update. Автоматически генерируется код при аналогичной последовательности ввода:
UPDATE Production.Location Можно даже объявить переменные на основе структуры таблицы. Набираю declare и выбираю таблицу Location, в результате формируется код:
DECLARE Построение вызова процедуры или функции.
Даже те объекты, которые создаются или объявляются в коде, становятся доступным в окне помощника. Учитывается создания временных таблиц, объявление переменных, в том числе табличных.
Если по коду я встречу переменную, то зажав клавишу Ctrl и кликнув по этой переменной, я перемещусь в место, где это переменная была объявлена. Но проще подвести курсор к этой переменой для получения всплывающей подсказки, в которой будет указан тип переменой. Для таблицы будет отображена ее структура и ссылки для получения скрипта на создание, быстрого просмотра содержимого и получения дополнительной информации. Системные
Для встроенных функций всплывающая подсказка с кратким описанием функции. А помощник поможет при вводе параметров.
ЗаключениеВот основные функции, которыми я ежедневно пользуюсь, работая в Management Studio. Это далеко не все возможности SQL Assistant. Есть еще много интересных функций, особенностей, приятных мелочей. Но, думаю, что построение связей, контекстный список для выбора таблиц и полей таблиц уже сможет облегчить труд программиста на порядок. Кстати, SQL Assistant ведет статистику о том, сколько символов ввел пользователь и сколько символов добавил помощник, а затем из этих данных рассчитывает процент роста продуктивности. |