SQL Prompt: pięć lat później

https://xpil.eu/cs4

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:
- $CURSOR$: definiuje pozycję kursora po wstawieniu snipetu
- $PASTE$: wstawia w miejscu znacznika zawartość schowka (o ile jest ona tekstowa rzecz jasna)
- $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.

3. 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.

4. 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ć.

5. 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.

6. 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.

7. 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.

https://xpil.eu/cs4

9 komentarzy

  1. polecam Toad Data Point. Mają i wersję testową, mają i bety – zawierają błędy [niewielkie, ale zawsze] ale są za free.

    1. Próbowałem tego, za Twoją namową zdaje się, parę miesięcy temu. Kraczate jakieś. I trzeba się wszystkiego od nowa uczyć. Podziękowałem…

      1. nie znasz się 😉 dla mnie najlepsza jest możliwość porównywania kilku wyników zapytań [odkłada je na osobnych zakładkach].

  2. Czy jest może gdzieś sensowne porównanie silników bazodanowych – tych płatnych i bezpłatnych?

    1. Chwila guglania i znalazłem taki oto ranking (nie wiem, czy opłacany przez Oracle czy nie): http://db-engines.com/en/ranking – przypuszczam, że pięć minut guglania więcej i można znaleźć kilka portali z porównaniami różnych baz. Tylko zawsze trzeba pamiętać o tym, że dany portal może być stronniczy, więc trzeba sobie wyrobić opinię oglądając więcej porównań i wyciągając własne wnioski. Poza tym różnym ludziom potrzebne są różne rzeczy w bazach, więc porównania / rankingi mogą nie być wiążące dla każdego.

  3. Dziękujemy za udostępnienie tych informacji! Chcę dodać jeszcze jedno wspaniałe narzędzie – SQL Complete.

      Przyspiesza pisanie kodu SQL, oferuje inteligentne sugestie oparte na kontekście, automatycznie formatuje i refaktoryzuje, poprawia czytelność kodu, zwiększa produktywność, obniża koszty i wiele więcej, co pozwala zaoszczędzić czas i wysiłki w procesie tworzenia bazy danych i kodu za pomocą kilku kliknięć.

    1. Używasz tego narzędzia na co dzień? Z opisu wygląda bardzo podobnie do SQL Prompt, ale widzę, że firma sprzedaje sporo dodatkowych klamotów, niektóre podobne do oferty RedGate, niektóre całkiem inne (na przykład Data Pump).

Leave a Comment

Komentarze mile widziane.

Jeżeli chcesz do komentarza wstawić kod, użyj składni:
[code]
tutaj wstaw swój kod
[/code]

Jeżeli zrobisz literówkę lub zmienisz zdanie, możesz edytować komentarz po jego zatwierdzeniu.