SQL Server ve vychozim stavu je case insensitive

Prave jsem zazil takovy maly sok, ale to je moje vina, ze odklikavam veci ktere neznam aniz bych si o nich neco zjistil. Programuji stale nekolik stranek pro statistiku, archivaci, sdileni, atd. gpx souboru z navigaci Garmin, ale urcite i jinych(je to co nejvice univerzalni). Kazda stopa se zobrazi verejne, pokud uzivatel bude znat jeji 5ti mistny kod a ID uzivatele.

5 mist je docela malo pro ochranu, ale zase to neni pro hesla. A zkousim v jinem prohlizeci, kde jsem byl prihlasen na svuj admin ucet pozmenit tento kod, zda se vypise nejaka chyba. Ani ve snu by me nenapadlo ze ve vychozim stavu bude mit SQL Server pro Cesko collation Czech_CI_AS, coz znamena case insensitive, accent sensitive – vzdyt i kdyby si to uchovavalo 2x textove sloupce, tak vyhledavat ve 2 musi byt strasna namaha(a to uz ani nemluvim o obsazenem miste), natoz kdyz by pri prohledavani kazde tabulky musel vsude u textu prevadet na stejne case.

To co to znamena jsem si zjistil z SQL Server Management Studio:
collations
Zkusil jsem tedy zmenit collation pro databazi. Ukazovalo mi to ze DB je skutecne Czech_CS_AS ale chovalo se to stejne, jen ted si nejsem jisty zda jsem zkousel vytvorit znovu databazi ale asi jo. Googlil jsem dal a nasel jsem jak nastavit collation pro sloupce explicitne. Tak jsem to zkusil, napsal jsem si tento kod ke kodu ktery vytvari SQL command pro vytvoreni tabulky:

Jsou tam vsechny typy ktere ve svych aplikacich pouzivam a i u tech kde bych to cekal ze collation nebudu moct pouzit jsem je vyzkousel – nesli. Collation jde nastavit pouze u textovych sloupcu a navic pouze za definici sloupce – tedy napriklad hned za VarChar NazevSloupce(10), jinak to vyhodi vyjimku. Nastavuji tam collation Czech_CS_AS_KS_WS abych mel jistotu ze uz skutecne nic nebude “necitlive”. ZKusil jsem vytvorit znovu tabulku s daty a uz to slo.

Tak jsem zmenil collation pro databazi zpet na Czech_CI_AS, resetoval PC a znovu vytvorit tabulku – i tu to slo. Takze ted uz budu vedet ze u textovych sloupcu musim pouzit Collate deklaraci.

Leave a Reply

Your email address will not be published. Required fields are marked *