Sidan 73 i boken Microsoft SQL Server 2008, sektionen Creating Tables innehåller en otäck BNF-grammatik. En grammatik i programspråkssammanhang är en fullständig beskrivning av alla de former som ett programspråkskommando kan anta. Sidan 73 anger hur ett CREATE TABLE
-kommando kan se ut. Fyrkantparenteserna [
och ]
innesluter någonting som man kan välja att ange noll eller en gång. I exemplet
XYZ [ FLERP ]
kan man ange FLERP
noll eller en gång, alltså är XYZ
och XYZ FLERP
godtagbara varianter. Man kan ha [
... ]
inom [
... ]
, i exemplet
XYZ [ FLERP [ UGH ] ]
vilket innebär att man kan välja UGH
om man väljer FLERP
, men endast om man väljer FLERP
, så att XYZ
, XYZ FLERP
och XYZ FLERP UGH
är godtagbara varianter.
Måsvingeparenteserna {
och }
, med strecket |
betecknar valmöjligheter. Det illustreras bäst genom ett exempel:
{ APA | BANAN | CITRON }
Innebär att man måste ha med exakt en av APA
, BANAN
eller CITRON
.
Något helt horribelt, men typiskt Microsoft, är att de skall hitta på sin alldeles egna notation. Det jag syftar på är [ ,...n ]
som inte betyder att man har valet att lägga in exakt en ,...n
. I stället är det så att en sträng term [
sepr...n ]
är en lista av term:er separerade av sepr, så att till exempel
OK [ *...n ]
tillåter OK
, OK * OK
, OK * OK * OK
, OK * OK * OK * OK
, och så vidare. Specialfallet [ ...n ]
betyder att det inte finns något sepr, så att
OK [ ...n ]
tillåter OK
, OK OK
, OK OK OK
, OK OK OK OK
, och så vidare.
Inga kommentarer:
Skicka en kommentar