Kim Torgersen


Öka produktiviteten med SQL-Prompt

article feature image


Innehåll


SQL Server Management Studio (SSMS) har varit mitt huvudsakliga verktyg i många år. Som databasutvecklare satt jag i SSMS på heltid, och idag när jag jobbar med beslutsstöd i Microsoft-miljö tillbringar jag fortfarande betydande del av min tid med SSMS.
Detta riktar sig till dig som använder SSMS regelbundet, eller har team som har SSMS i verktygslådan, och fortfarande har den inbyggda intellisensen aktiverad.

När mitt team tidigt 10-tal utvärderade olika produkter fanns det ett självklart val. SQL Prompt ifrån Redgate. Jag vet att det sedan dess finns andra produkter som kommit ikapp med jämförbara funktioner till en liknande kostnad, men inget som fått mig att överväga ett byte.

Tidigare skrev Redgate på produktsidan för SQL Prompt att verktyget ökade produktiviteten med 50%. Jag tycker att detta är en blygsam uppskattning. Med egna snippets kan du automatisera skrivandet till den grad att du får se upp så du inte glömmer bort syntaxen, så du fortfarande kan skriva SQL-kod utan SQL Prompt. Jag går här igenom de funktioner som sparar mig mest tid när jag jobbar med databaser i SQL Server.

Snippets

ssf
Det finns generöst med förinstallerade snippets, och det är enkelt att ändra och lägga till. I den enklaste formen är det en statisk text som kan klippas in, som “ssf”-exemplet ovan. Utöver det så kan mallarnas funktion utökas med taggar för att få lite dynamiskare funktionallitet. Så som en tagg för valt textstycke gör det möjligt att ha en snippet för att omringa ett kodstycke med till exempel en if-sats. Eller en snippet för att skapa en if-sats, där markören placeras redo för att direkt skriva villkoret när snippeten klippts in.

Varje snippet sparas som en egen textfil i en mapp och importeras automatsik, vilket gör det mycket enkelt att flytta när du byter dator och att dela med kollegor.

Snippets fungerar inte bara för små kodsnuttar, som det kan låta på namnet.. Det finns ingen egentlig längdbegränsning, så snippets kan också användas för att spara längre SQL-skript som inte används lika ofta. Förslagsvis med ett längre och tydligare namn. Du behöver inte komma ihåg dessa längre namn exakt, då du får hjälp av autocompleten som beskrivs i nästa stycke.

Autocomplete

Autocomplete
En autocomplete som inte är att jämföra med den inbyggda i SSMS. Detta är funktionen i SQL Prompt som ger mig mest värde.
Den är inte endast som många andra att den bara listar befintliga objekt, till exempel tabeller i en FROM-sats. Den gör intelligenta förslag i flera olika lägen. Till exempel ger den bra förslag på JOIN-vilkor, inte bara på namn, utan tittar även på främmande nycklar. Det gäller också när den ger förslag på tabeller i en JOIN. Den prioriterar troliga förslag baserat på de tabeller som redan finns i frågan.

Det märks direkt när man är i en databas utan främmande nycklar. Den ger märkbart sämre hjälp. Med nycklar vet prompten till exempel att kolumnen “PersonID” pekar på kolumnen “ID” i tabellen Person. Att prompten är så pass “intelligent” gör att det är ett fantastiskt verktyg när du utforskar en databas du inte är bekant med.

Den förifyller inte endast det ord eller den rad du börjat skriva på. Den expanderar många (alla) typer av objekt. Den expanderar “*” i en SELECT-sats till samtliga tillgängliga kolumner. Den expanderar INSERT till hela kommandot med kolumner och VALUES-sats. En EXECUTE med alla parametrar.
En ALTER-sats av en procedur, funktion eller vy expanderas en ALTER med hela definitionen av objektet. Vilket leder mig in på nästa punkt…

SQL Prompt befriar dig ifrån Objekt Exporer. Inget mer skrollande upp och ner i långa listor för att hitta objekt.
Här finns två funktioner, som båda hittas enkelt via ett högerklick eller hotkeys (F12 / Ctrl + F12). Den första funktionen nämdes kort i förra stycket.

En ALTER-sats kan expandera ett textobjekt. Samma sak uppnås om du har kod framför dig som innehåller en EXECUTE eller SELECT på ett objekt du vill öppna. Med högerklick eller F12 med markören på proceduren/vyn öppnas ALTER-satsen för det objektet i en ny flik. Du behöver aldrig med skrolla efter en vy, högerklicka, och “Script as ALTER to..”.

En tabellen kan du inte öppna på samma sätt. Ibland, förmodligen inte lika ofta som du öppnar en vy, vill du ändra en tabell genom att använda designern eller “script as…”. Snabbaste sättet här är du att använda Prompt-funktionen “Select in Object Exporer” (Ctrl+F12). Markören hoppar genast till aktuellt objekt i sidomenyn, där du då direkt kan utföra det du ville utan att skrolla efter det.

Formattering

Formattering
En funktion som kanske inte primärt finns till för att spara dig tid är formattering av kod. Du ställer själv in regler för hur koden ska formatteras. Det finns mycket att justera, så det kan ta en stund att få till som man vill, speciellt om du inte på förhand har klart för dig hur koden ska formatteras. Det går snabbare om ni redan har en gemensam kodstandart nedtecknad, annars kan det vara ett tillfälle att arbeta fram en. Detta bidrar till att koden får samma stil oavsett vem det är som skrivit den och att alla kan snabbare känna igen sig och förstå koden.

SQL Prompt kommer såklart med en stil, så det är inget som måste göras för att komma igång. Varje stil sparas även dessa som textfiler. Dvs så är det enkelt att flytta med sig och dela med kollegor. Jag har jobbat i en organisation där den gemensamma stilen administrerades centralt och trycktes ut till allas datorer.

SQL Prompt kan formattera hela procedurer och längre SQL-skript. Men arbetsflödet är inte att du först skriver din kod i valfri röra för att sedan på slutet formattera den. Formatteringen hjälper dig hela vägen. All autokomplete som görs följer reglerna för vald stil. Så medans du kodar får du hjälp med formatteringen och behöver inte lägga lika mycket tid och tankeverksamhet på radbryt, indrag och placering av kommatecken.

SQL Prompt är just ett sådant verktyg. Den hjälper dig, utan att vara i vägen för dig. Så att du kan fokusera på att producera rätt kod.

Något för dig?

Det här är några av de funktioner som sparar mig mycket tid i mitt arbete. Det finns såklart fler funktioner som jag inte tagit upp här. Några som kanske kan spara just dig mycket tid. Kanske export av ett resultatset till Excel, färgkodning beroende på databas/server, eller tab-historik.

Använder ni ingen autocomplete idag (den inbyggda inkluderad) så är det definitivt något ni bör titta på anser jag, och jag kan varmt rekommendera Redgate SQL Prompt.
Jämförbara alternativ är ApexSQL Complete eller Devart SQL Complete. Ett annat populärt plugin till SSMS är SSMSBoost, men är ingen ersättare för övriga nämnda. Inga av dessa verktyg har jag själv använt i närtid och kan göra en bra jämförelse. Nämner de för att det är produkter som vi tidigare ställt emot SQL Prompt när vi skulle göra vårat val.
SQL Prompt kan köpas separat, eller som del i en suite. SQL Prompt är ett av många verktyg Redgate erbjuder till SQL Server.

Oavsett val, gör det inte baserat på några hundralappars skillnad i pris. Arbetar ni med SSMS i någon större omfattning är det en kostnad som snabbt tjänas igen. Glöm inte heller trivseln på arbetet som bra verktyg kan skapa.