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

Skomentuj fieloryb Anuluj pisanie odpowiedzi

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.