ремонт бампера
Header RSS-подписка на обновления сайта eMail-подписка на обновления сайта

Цвет — в студию!


366bef3a

ColorBar

Эта не столь широко известная, но крайне полезная особенность всеми нами любимой студии (та что SQL Server Management) определенно придется по вкусу всем тем, кто работает как минимум с двумя SQL-серверами/SQL-экземплярами. Причем чем больше серверов находится в вашем управлении тем востребованнее будет «фича» коей посвящена эта краткая заметка.

Object Explorer and 3 serversИтак, допустим самую распространенную ситуацию хорошо знакомую большинству SQL-разработчиков: мы работаем с 3-мя серверами/инстансами: сервер разработки, сервер тестирования и продакшен-сервер. Тогда разработчик приходя с утра на работу и открывая студию будет видеть в окне Object Explorer последней картину примерно как на иллюстрации справа (рисунки в статье кликабельны). Как в такой ситуации написать (точнее - начать процесс написания) запрос к тому или иному серверу? Автору (да и большинству читателей, несомненно) известно несколько способов открыть окно редактора в котором и будет набран необходимый запрос на языке T-SQL. В любом случае еще до того как это окно откроется нам будет предложено указать путь к целевому серверу посредством окна Connect to Database Engine (иллюстрация слева).ConnectToDB Тут-то у многих администраторов/разработчиков срабатывает рефлекс «жахни Enter не глядя», потому что они точно помнят что последний раз подключались воооон к тому серверу, а указанное окно всегда по умолчанию предлагает подключиться вновь к тому же серверу что и подключением ранее. И хорошо если это последнее подключение было действительно к тест-серверу, а если он после этого «буквально на секундочку» заскакивал на продакшен о чем к текущей минуте успешно забыл? Тогда с хорошей долей вероятности он начнет работать с «боевым» сервером пребывая в опасном заблуждении что набираемый им скрипт будет исполняться тестовым. Есть и еще более надежный способ «попадания» в ту же ловушку, а именно: находясь в окне Object Explorer нажать Ctrl+N. Тогда окно редактора откроется вообще без всяких вопросов, а целевой сервер будет выбран «интеллектуально», опираясь на текущий активный объект окна Object Explorer. Тут уже достаточно легкого касания стрелки вверх/вниз и выбранный сервер окажется совсем иным, не тем что мы предполагаем.

Как, теоретически, можно заметить (будем надеяться что вовремя) допущенный промах? Это возможно двумя способами:

  • поднять взгляд вверх, к ярлыку новой вкладки в редакторе. А еще лучше - «завесить» над ним курсор мыши. Это в точности покажет нам имя целевого сервера:DetectCurrentConnection_1
  • напротив - опустить глаза вниз, в строку состояния, и считать ту же информацию оттуда:DetectCurrentConnection_2

Почему оба способа автор называет «теоретическими»? Да потому что они не наглядны! Ну ярлык и ярлык, в статус-баре что-то написано... Не бросается все это в глаза. А суть излагаемой «фичи» как раз и сводится к тому, что бы сделать деление подключенных серверов именно выражено визуальным, трудно игнорируемым. Попробуем?

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

  • продакшен-сервер будет ярко-красным («внимание! тщательно подумай прежде чем запускать скрипт!» и т.п.)
  • тест-сервер будет желтым и не столь ядовитым
  • сервер разработки с которым работает лишь наша developer team будет бледно-зеленым или даже серо-нейтральным

Что-то вот в таком стиле. Далее требуется сообщить сделанный выбор студии, для чего:

  • любым способом открываем окно Connect to Database Engine. Быстрей всего для его вызова нажать кнопку Database Engine Query на тулбаре:DatabaseEngineQueryButton
  • в строке Server name указываем первый сервер из составленного цветового списка и щелкаем кнопку Options >>:ConnectToDB_Step2
  • в панели Connection Properties ставим галочку Use custom color и щелкаем Select... . Пользуясь стандартным виндовым «колор-пикером» выбираем цвет намеченный для конфигурируемого сервера. OK и возвращаемся к панели Connection Properties:ConnectToDB_Step3
  • осталось нажать кнопку Connect для фиксации выбранного цвета. В результате откроется окно (вкладка) редактора подсоединенного к целевому серверу. Если прямо сейчас вам сказать ему нечего - вкладку можно сразу же закрыть, цвет сервера уже сохранен;
  • повторить описанные шаги для всех серверов из подготовленного списка

Вот и все, вы «цветокалибровали» свою студию. Начиная с этого момента окно (вкладка) редактора открытое любым способом (это крайне важно! абсолютно любым способом - через меню, тулбар, шорткатом, из внешнего приложения,...) и при условии что оно в данный момент имеет активное соединение с одним из серверов из нашего с вами «цветового реестра» будет красить всю строку состояния выбранным цветом:StatusBar_InColor

Не заметить такой «хинт» много, много сложнее - все же статус бар занимает без малого всю ширину окна студии. По собственному опыту могу вас заверить, что яркие, ядовитые цвета просто даже раздражающе настойчивы, ошибиться просто невозможно. Если же у нас в редакторе студии будет открыто несколько «цветокодированных» вкладок каждая из которых подключена к своему серверу, то... да, вы совершенно правы - при переключении со вкладки на вкладку будет перекрашиваться и статус бар. Так что теперь при нажатии F5 ответ на вопрос «а на том ли сервере я собираюсь команду выполнить?» вам подскажет ваше периферийное зрение, переводить целенаправленный взгляд на статус бар (тем самым теряя читаемую строку кода) нужды нет. Пользуйтесь на здоровье! ;)