Betragt følgende stump SQL og overvej resultatet:

SET ANSI_NULLS ON;
SELECT 
CASE 
    WHEN NOT 'EnStreng' IN ('A', NULL) THEN 'Ja'
    ELSE 'Nej'
END

Hvis du gættede på, at resultatet ville blive ‘Nej’, er du klogere end mig (hvilket mange er).  Sagen er, at med ANSI_NULL ON, vil alle sammenligninger med NULL returnere værdien UNKNOWN, og alle boolean operatorer vil returnere UNKNOWN, når de bruges sammen med UNKNOWN.  Derfor vil første case aldrig evaluere til TRUE.

Som hovedregel må man aldrig bruge =, < og > ved sammenligninger med NULL, når ANSI_NULL er ON.

For fremtidige versioner af SQL Server (hvad så end det betyder) vil ANSI_NULLS altid være ON.  Mere info her: http://msdn.microsoft.com/en-us/library/ms188048(v=sql.110).aspx

 

For et par dage siden modtog jeg to forskellige stylus'er, som var blevet bestilt fra dealextreme som et hurtigt impulskøb. Det er første gang, jeg bestiller fra dx.com, så jeg var lidt spændt på om jeg måtte bløde en masse, da pakken blev sendt fra Kina. Det var heldigvis ikke tilfældet, så jeg måtte alt i alt slippe i omegnen af 100kr. for 6 stylus'er.

Jeg valgte at satse på to forskellige modeller for at sprede risikoen lidt, og valgte to, der havde fået relative gode anmeldelser fra andre brugere på dx.com. De to modeller er:

Der er blevet leget lidt med de to modeller i gratis-versionen af GoodNotes, der er én af mange notattagningsprogrammer, der findes til ipad. Da jeg ikke længere er studerende er GoodNotes og stylus'er ikke blevet testet i "rigtige" scenarier, og jeg skal ikke kunne sige, om det er bedre at kaste 20-70kr. efter nogle af de andre apps på markedet. GoodNotes har dog de features jeg umiddelbart kunne forestille mig ville være relevante for mig, blandt andet:

  • Skrivefelt. Når man skriver med en stylus er det svært at skrive lille skrift, da stylus'er som regel har en stor rund og blød ende. Derfor svarer det lidt til at skrive med tavlekridt. Skrivefeltet sørger for, at din store håndskrift nedskaleres til "normal" tekststørrelse på dit "kladdepapir". Se Zoom window nederst på denne side for et eksempel.
  • Import af PDF. Smart hvis man skal kommentere og korrekturlæse på et dokument. Jeg er stadig bedst til at læse korrektur med et stykke papir i hånden og en rød kuglepen i hånden, og på denne måde kan jeg næsten få samme følelse som med papir.
  • Import af billeder. Jeg forestiller mig det kan være anvendeligt i nogle sammenhængen. Det fungerer i hvert fald upåklageligt.
  • Figurtegning. Når denne funktion er slået til vil app'en gøre en streg helt lige, en cirkel rund etc. Det gør det noget lettere at lave pæne figurer, men man skal nok lige vænne sig lidt til funktionaliteten.
  • Farver, stregtykkelse og overstregninger. Disse features må forventes at være minimumsfunktionalitet i sådan en app.

Jeg har ikke noget at udsætte på GoodNotes. Det fungerer rigtigt godt og den eneste begrænsning i den gratis version er et maksimum på 2 noter.

De to stylus'er ligner hinanden i udseende og materialer. De er begge sorte og lavet af plast. Aluminum Alloy er lidt kortere end en normal kuglepen mens den anden er samme størrelse som en normal kuglepen, og indeholder også en rigtig kuglepen (som jeg ikke har afprøvet).

Black Ink Ball Pen har en blød ende mens Aluminum Alloy er lidt mere hård i gummiet, hvorfor man skal presse lidt mere hårdt for at aktivere stulus'en mod glasset på ipad'en. Personligt foretrækker jeg Black Ink Ball Pen da man ikke behøver at presse så hårdt og samtidigt passer størrelsen mig lidt bedre, da den føles som en almindelig kuglepen i hånden.

Priserne taget i betragtning er det bare at bestille nogle stykker hjem - holdbarheden er formodentlig relativ lav og holder næppe til at man får sat sig på dem i sofaen. Til gengæld får man til billige penge en masse ekstra funktionalitet til sin tablet.

Forleden blev jeg mindet om SQLCMD Mode i SQL Server Management Studio.  Jeg brugte det flittigt i en periode for nogle år tilbage, men er af en eller anden grund kommet væk fra det.  SQLCMD Mode gør det muligt at kalde sqlcmd.exe direkte i sine SQL scripts i SSMS, og det kan være ganske nyttigt. 

Opsætning

For at slå SQLCMD Mode til, skal man trykke på knappen SQLCMD Mode i værktøjslinjen i SSMS.  Som standard er denne knap ikke synlig.  For at tilføje den skal man gå ind under Tools –> Customize menuen.  Under fanen Commands skal man trykke Add Command og finde knappen under Query kategorien.  Man kan også bruge menuen Query –> SQLCMD Mode.

image

Når SQLCMD Mode er slået til, kan man fra SSMS eksekvere SQLCMD kommander ved at skrive et kolon (‘:’) foran kommandoen.  SQLCMD kommandoer fremhæves som grå linjer i SSMS. 

Ændre forbindelse til SQL Server

En af de gode kommandoer er :Connect.  Med :Connect kan man forbinde til en SQL Server direkte fra sit SQL script:

image

Det betyder, at man kan gemme forbindelsesinformation direkte i sine SQL filer.

Variable

En anden nyttig funktion er muligheden for at definere variable. I nedenstående eksempel benytter jeg det til hurtigt at generere noget testdata.  Jeg har defineret en tabel kaldet Table_1, der har default værdier på alle kolonner.  Vha. SQLCMD’s mulighed for at definere variable og SSMS’ definition af GO, kan jeg eksekvere min INSERT statement 10 gange:

image

Eksekvering af cmd prompt kommandoer

SQLCMD kan selvfølgelig også andre sjove ting.  F.eks. kan man eksekvere almindelige cmd prompt kommandoer vha. ‘!!’, hvis man skulle få lyst til det:

image

Standardopsætning

Hvis man som standard ønsker at åbne alle SQL scripts i SQLCMD Mode i SSMS, skal man gå ind under Tools –> Options og tilvælge det:

image