Avatar billede kelo Nybegynder
17. august 2001 - 13:08 Der er 12 kommentarer og
1 løsning

ID creation

Hej

Jeg er ved at lave et nyt tabel, hvor jeg skal bruge en id der automatisk forøger, MEN den skal køre således: skal være 4 tegn


0001
..
9999
A001
..
ZZZZ

Kan det lade sig gøre??
Avatar billede giuggio97 Nybegynder
17. august 2001 - 14:24 #1
Jeg tror ikke at MS SQL kan gøre det automatisk.
Hvad med at benytte et almindeligt autonumber, altså et Identity felt, og med hjælp af lidt kode oversætte det til dit format?
Avatar billede kelo Nybegynder
17. august 2001 - 14:27 #2
Hmm så må jeg vil lave en insert trigger der kan gøre det.
Avatar billede giuggio97 Nybegynder
17. august 2001 - 14:34 #3
Du kan også gøre det med et Stored Procedure.
Hvad med dit format? Blandet alfanumerisk?
Det er usædvanligt...
Avatar billede kelo Nybegynder
17. august 2001 - 14:36 #4
Jeg bestemmer selv hvad formattet skal være, så ja alfanumerisk var en mulighed.

Men jeg tror nu jeg vil vælge Trigger så teste på insert
Avatar billede giuggio97 Nybegynder
17. august 2001 - 14:40 #5
Har du aldrig prøvet at bruge Uniqueidentifier?
Det er et forslag til dit format.
:-)
Avatar billede kelo Nybegynder
17. august 2001 - 14:41 #6
Nope det har jeg aldrig brugt, har du et eksemple?
Avatar billede giuggio97 Nybegynder
17. august 2001 - 14:46 #7
Først og fremmest er det et universal unique tal, der ser sådan ud: {3F4DACA7-160D-11D2-A8E9-00104B365C9F}

For at bruge det, du skal oprette et felt med uniqueidentifier som type.
For at generere et, fyr bar SELECT TOP 1 NEWID() eller sæt NEWID() i default værdi til feltet - så er det tilføjet automatisk.

Du kan eventuelt hente kun den første del af tallet
Avatar billede kelo Nybegynder
17. august 2001 - 14:54 #8
Hvis nu jeg piller noget fra Unique id, så er den vil ikke unique mere er den?
Avatar billede giuggio97 Nybegynder
17. august 2001 - 15:02 #9
Delvis korrekt. GUID\'en er et kombination af tal der stammer fra netkortet, IP adresse og andet.
Det er det første del der skifter. I dette eksempel {3F4DACA7-160D-11D2-A8E9-00104B365C9F}
er kun 3F4DACA7 der stiger.

Prøv met at generere flere GUID\'er fra dit database, så kan du se forskellen.

Alligevel, jeg vil benytte hele GUIDen for at være sikkert.

Hvad sker til dit id efter ZZZZ?
Avatar billede kelo Nybegynder
17. august 2001 - 15:04 #10
så er der ikke flere...jeg må kun bruge en id på 4 tal, efter zzzz, så kan der ikke laves flere brugere
Avatar billede giuggio97 Nybegynder
17. august 2001 - 15:09 #11
Det vil sige at du skal begrænse antallet af rækkerne til cirka 2251875390625...
Du kan ikke få så mange med GUID\'en, hvis du bruger de første 4 cifrer af den første del (ACA7) fordi GUID tal er fra 0 til F.
Det var en hurtig løsning uden at lave meget kode, mit forslag...
Avatar billede torbenkoch Nybegynder
19. august 2001 - 17:58 #12
Du lave et almindeligt IDENTITY felt og dit specialfelt. Med en trigger kan du så udfylde dit specialfelt ved omregne værdien af IDENTITY feltet til dit eget specielle format.
Avatar billede ldanielsen Nybegynder
20. august 2001 - 09:04 #13
En lille ting:

Kommer 999A ikke efter 9999?
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester