SQL Prompt: pięć lat później

krótki URL: /cs4

kategorie:Inne recenzje, Recenzje
tagi:sql server

Pięć lat temu pisałem o aplikacji SQL Prompt (firmy RedGate). Dziś szybciutko rzucimy okiem na kilka opcji, które od tamtego czasu pojawiły się w tej aplikacji.

Zanim zacznę, nadmienię jeszcze (już tradycyjnie), że firma RedGate nie zapłaciła mi za reklamę złamanego szeląga - w rzeczywistości jest dokładnie na odwrót, to ja im płacę za licencję (no dobra, nie ja tylko mój obecny pracodawca, ale za moją namową). Opisuję produkt, bo jest dobry, użyteczny i wart swoich pieniędzy.

Jeżeli ktoś nie wie, do czego służy SQL Prompt, niech sobie poczyta tutaj albo niech odwiedzi stronę producenta.

Nie będę dziś wymieniał wszystkich opcji SQL Prompt - od tego jest dokumentacja techniczna oraz ogłoszenia producenta. Skupię się na kilku, które najbardziej lubię.

  1. Inteligentne podpowiadanie kolumn w klauzuli JOIN: jeżeli po obydwu stronach JOIN-a istnieją kolumny o takich samych nazwach, pojawią się one na liście podpowiedzi. Jeżeli tabele są połączone relacją (kluczem - FK) - kolumny z obydwu stron relacji pojawią się wśród podpowiedzi. Bardzo wygodne.

  2. Ogromna ilość dostępnych znaczników w edytorze snipetów (o snipetach można poczytać w moim wpisie sprzed pięciu lat - patrz wyżej), z czego moje ulubione to:

  3. $CURSOR$: definiuje pozycję kursora po wstawieniu snipetu

  4. $PASTE$: wstawia w miejscu znacznika zawartość schowka (o ile jest ona tekstowa rzecz jasna)

  5. $SELECTEDTEXT$: wstawia w tym miejscu tekst, który był zaznaczony w chwili wywoływania snipetu

Przydatność snipetów jest ogromna, zwłaszcza jeżeli piszemy duże ilości kodu w jakimś w miarę zestandaryzowanym środowisku. Dzięki zestawowi starannie dobranych snipetów można skrócić czas pisania kodu nawet o rząd wielkości.

  1. Ostrzeganie przed masową zmianą rekordów: jeżeli wykonujemy operację DELETE albo UPDATE bez klauzuli WHERE, próba uruchomienia takiego kodu wyświetli dodatkowe okienko z zapytaniem, czy aby na pewno wiemy, co robimy.

  2. Opcja "Script as INSERT" pojawiająca się w menu podręcznym w arkuszu wyników zapytania. Zaznaczenie rekordów a następnie wybranie tej opcji spowoduje otwarcie nowego, pustego okienka SSMS i wstawienie tam skryptu wypełniającego tabelę tymczasową zaznaczonymi danymi. Dzięki temu można potem te dane szybko przeanalizować.

  3. W tymże samym menu podręcznym pojawiła się opcja "Open in Excel" - teraz zamiast robić "Copy with headers" i potem wklejać do Excela, załatwiamy sprawę jednym kliknięciem.

  4. Jeżeli w arkuszu wyników zapytania podświetlimy dane tylko z jednej kolumny, w menu podręcznym pojawi się jeszcze jedna opcja: "Copy as IN clause" , która zaznaczone dane zdeduplikuje, otoczy apostrofami (o ile są to dane tekstowe) i wygeneruje dla nich klauzulę IN, a następnie umieści ją w schowku. Scenariusz jest bardzo powszechny, więc ta mała opcja potrafi zaoszczędzić mnóstwo czasu.

  5. Coś, czego od zawsze brakowało mi w SQL Serverze i czego trochę zazdrościłem programistom Oracle: możliwość uruchomienia zapytania pod kursorem. Dotychczas jedyną opcją było zaznaczenie zapytania i wciśnięcie F5 (albo Alt-X, jak kto woli), co trwało sekundę lub dwie i dawało możliwość popełnienia błędu (na przykład pominięcie klauzuli WHERE w zaznaczeniu). Po zainstalowaniu ostatniej wersji SQL Prompt wystarczy nacisnąć Shift-F5 i aplikacja "sama" zaznaczy zapytanie pod kursorem i je wykona. Widać przy okazji, że chłopaki z RedGate dbają o szczegóły: jeżeli kursor znajduje się ZA średnikiem kończącym zapytanie, ale w tej samej linii, wciśnięcie Shift-F5 wykona to właśnie zapytanie (chociaż logicznym mogłoby się wydawać wykonanie zapytania następnego, skoro już jesteśmy po prawej stronie średnika).

Na dziś koniec. Być może za pięć lat znów napomknę o nowych opcjach SQL Prompt, tymczasem jednak zmywak wzywa.

Komentarze