19. november 2006 - 15:01Der er
6 kommentarer og 1 løsning
Egne datatyper i Sql Server
Jeg kunne rigtig godt tænke mig en datatype til opbevaring af IP-adresser, som var optimeret netop til dette formål. Hver adresse er som bekendt opbygget af fire bytes og jeg ønsker at gemme netop disse bytes og intet andet. I dag gemmer jeg adresserne som varchar(15) hvilket giver et væsentligt højere pladsforbrug.
Er der nogen der kan give nogle eksempler - eller links til fornuftige artikler - om hvordan man definerer sin egen datatype?
Det har jeg sådan set også overvejet, men jeg endte med at gå lidt kold i konverteringen. Endvidere håbede jeg lidt på at man kunne gemme de fire bytes, men læse og skrive fra feltet ved at caste en varchar til min egen datatype. Hvis jeg implementerer to UDF til omskrivning den ene og anden vej, kan jeg da bruge det med en "type med en constraint på" til at lægge et automatisk cast ind? Alternativt kunne jeg selvfølgelig kalde min UDF explicit når jeg læser/skriver fra tabeller med ip-adresser.
hvis du laver app i C# bør det være endda særdeleses nemt at konvertere
man bør også kunne lave konverteringen i en UDF, men umiddelbart ville jeg nok tro at det var nemmere i app (hvis det er SQLServer 2005 er det et fedt fordi du kan lave din UDF i C#)
Jeg har lige købt en bog om Sql Server 2005 forleden, så mon ikke dette skulle være lejligheden til at få læst lidt om CLR-integrationen og få skrevet de par UDF's :)
For at vende lidt tilbage til tidligere: Jeg kan oprette nye "User-defined Data Types" i min database gennem det Sql Server Management Studio (MSSSMS), men hvad kan disse bruges til? Jeg har som forsøg oprettet en ny type "inet" nu som internt er en int. Kan jeg bruge dette til noget som helst i denne case, eller skal jeg bare have et alm. int?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.