Witaj na Zine.net online Zaloguj się | Rejestracja | Pomoc

[PL] Intellisense, nowe funkcje - tajemnice (?) Katmai CTP5

Co może nam dać Intellisense w SQL Server Management Studio (SSMS) w Katmai? Zasadniczo nie jestem zwolennikiem podpowiadania składni w języku T-SQL. Wynika to z prostej przyczyny - język ten jest na tyle elastyczny i niedoprecyzowany, że zbudowanie dobrego mechanizmu podpowiadania składni wydaje się być dość trudnym, jeśli nie niemożliwym, zadaniem. Microsoft podjął jednak rękawicę i w November CTP zobaczyliśmy pierwszą odsłonę Intellisense w SSMS. Pierwszy kontakt z tym mechanizmem sugeruje, że cała sprawa jest w powijakach i wymaga jeszcze sporego nakładu pracy, choćby po to, by zniknęły trudne do wyjaśnienia błędy wyświetlane przez Intellisense w Katmai. Ale już teraz jest jedna korzyść płynąca z obecności Intellisense w CTP5. Otóż...

Intellisense w obecnej postaci pozwala między innymi na przejrzenie listy nowych funkcji w Katmai. Listy takiej brakuje w Books Online (BOL). A nowych funkcji jest całkiem sporo. Przeglądając je, zauważyłem, że można je podzielić na pewne kategorie:

  1. funkcje, które są opisane w BOL i są listowane w Intellisense,
  2. funkcje, które są opisane w BOL i nie są listowane w Intellisense,
  3. funkcje, których nie ma w BOL, ale działają (lub udają, że działąją) i są w Intellisense,
  4. funkcje, których nie ma w BOL, są w Intellisense, ale przy próbie ich użycia pojawia się komunikat błędu o numerze 195.

Przykładem funkcji należącej do pierwszej kategorii jest funkcja CONNECTIONPROPERTY . Funkcja ta, jak wskazuje nazwa, służy do zwracania metadanych wybranego połączenia. Niestety, funkcja ta zwraca tylko informacje o połączeniu, w ramach którego jest uruchamiana.

Przykładem funkcji należącej do drugiej kategorii jest ORIGINAL_DB_NAME. Funkcja ta zwraca w niektórych przypadkach bazę danych, do której podłączył się użytkownik zaraz po udanym zalogowaniu do instancji. Napisałem, że funkcja działa w niektórych przypadkach. Owszem - niektórych, ponieważ żeby ta funkcja cokolwiek zwróciła, przy łączeniu z instancją SQL Server musi zostać jawnie podana baza danych (czyli np. musi zostać użyty przełącznik -d narzędzia SQLCMD czy też w opcjach okna połączenia w SSMS musi zostać określona baza danych). To niestety zmniejsza IMHO przydatność tej funkcji.

Przykładem funkcji z trzeciej kategorii jest DEFAULT_DOMAIN. W moim przypadku funkcja zwróciła nazwę domeny, w jakiej znajdowała się maszyna. Funkcji tej faktycznie brakuje w BOL, choć z powodzeniem można jej używać już na SQL Server 2005.

Wreszcie ostatnia kategoria - funkcje, które istnieją tylko w podpowiedziach udzielanych przez Intellisense. Do najciekawszych z racji nazw należą takie "kwiatki": NORMALIZE, NORMALIZE_DENORMALIZE oraz GEN_NORM_TABLES. Czyżby przymiarka do automatu do generowania znormalizowanych tabel? A może nieopatrznie na liście znalazły się jakieś funkcje "internal", których zwykłym użyszkodnikom używać nie wolno?

Tak czy inaczej, zabawa z Intellisense w CTP5 może być interesująca. Można doszukać się nowych obiektów systemowych (są na przykład nowe DMV - choćby dla Resource Governora). Można też odkryć kilka obiektów systemowych, które istniały w poprzednich wersji, ale z racji braku jakiejkolwiek wzmianki w dokumentacji umknęły naszej uwadze. Z tego punktu widzenia Intellisense może okazać się przydatnym narzędziem do odkrywania sekretów Katmai. A jak ktoś już będzie miał dość tego mechanizmu, to po prostu go wyłączy w opcjach SSMS.

Opublikowane 8 stycznia 2008 09:52 przez brejk
Filed under: , ,

Komentarze:

# re: Intellisense, nowe funkcje - tajemnice (?) Katmai CTP5

8 stycznia 2008 21:39 by wicherqm@gmail.com

Hmm ciekawe moglbym rzec podebrali mi pomysl ;-) z intellisense.

Ale mozna by rzec rowniez ze podebrali pomysl z redgate sql prompt itd. Ogolnie pracuje nad czyms   "zachaczajacym" o intellisense ORACLE/MSSQL. Jednak na razie utknolem na dosyc dlugo.. w przyziemnej rzeczy pod postacia silnika witryny sqlhere ktora pisze od 0 (silnik bedzie czescia tego czegos "zachaczajacego" o intellisense). Co z tego wyjdzie czas pokaze, moze nic, moze cos. Zasoby czasowe moje nawet trudno porownywac w jakichkolwiek kategoriach z gigantem z redmont (poswiecam na to swoj prywatny czas ktorego sila rzeczy jest niewiele). Ale artykul mnie zmotywowal jeszcze bardziej :) .

Pozdrawiam

# re: Intellisense, nowe funkcje - tajemnice (?) Katmai CTP5

9 stycznia 2008 07:02 by brejk

Myślę, że MS po prostu kiedyś musiał spróbować zaimplementować Intellisense w SQL Server. SQL Prompt to jednak narzędzie o ciut większych możliwościach, przynajmniej póki co. A co do Twojego pomysłu i SQLHere, to po pierwsze - kontynuuj prace (w końcu robisz parsowanie nie tylko T-SQL), a po drugie - zapraszam Cię po raz kolejny na spotkanie WG.NET i PLSSUG (lub spotkanie PLSSUG w innym mieście niż Warszawa -Lublin, Katowice, Wrocław) z prezentacją o Twoim projekcie. Myślę, że tym sposobem udało by Ci się zyskać paru testerów więcej dla SQLHere.

# re: Intellisense, nowe funkcje - tajemnice (?) Katmai CTP5

9 stycznia 2008 09:08 by wicherqm@gmail.com

Dziekuje za zaproszenie, skorzystam kiedy projekt  bedzie w bardziej zaawansowanej formie, Parser sql jest jedynie jego czescia. Zakladam ze potrwa to ok 4 miesiace do uruchomienia bety. Na razie nie chce zapeszac i robic prezentacji czegos czego nie ma lub jest w zbyt wczesnej formie.

Pozdrawiam

Komentarze anonimowe wyłączone

About brejk

MVP, MCT, SQL Server geek