Avatar billede anri Novice
20. marts 2014 - 08:31 Der er 4 kommentarer og
1 løsning

Tildel midlertidige værdier til null kolonner

Jeg har en tabel der f.eks kan se således ud:

ID, ParentID, Text
344, null, 'dddd'
345, null, 'dddd'
346, null, 'dddd'
347, null, 'dddd'
348, null, 'dddd'
354, null, 'dddd'
421, null, 'dddd'
null, 421, 'eeee'
null, 421, 'ffff'
null, 354, 'eeee'


Kolonnen ID kræver midlertidig at der er en unik værdi, så jeg vil gerne indsætte et fortløbende nummer der er højere end den eksisterende max værdi.

Nogen gode forslag?
Avatar billede Syska Mester
20. marts 2014 - 10:22 #1
Er det ikke bare at angive at det skal være en "IDENTITY" column og fjerne ALLOW NULL fra den?
Avatar billede anri Novice
20. marts 2014 - 10:58 #2
Desværre ikke, da selve tabellen er sammensat af flere queries, der skal bruges i en tree-control på front-end'en.

Eksempel:

Select ID, null ParentID, Text from Kunder
union
Select null ID, KundeID ParentID, Text From Ordrer

I dette tilfælde kan jeg ikke selecte ID'en på ordrer som "ID" i resultat-tabellen da jeg så kan være sammenfald imellem ID'en i tabellen kunder og tabellen ordrer.

Jeg kan desværre heller ikke bare lave ID'erne om til GUID da jeg ikke kan ændre strukturen i databasen, men kun lave views.

JEg skal imidlertid IKKE bruge "Ordrer"'s ID til andet end at den skal være unik.
Avatar billede Syska Mester
20. marts 2014 - 11:08 #3
Du kan måske bruge noget ala dette:
http://stackoverflow.com/questions/7436732/cte-row-number-and-rowcount

Så bare sætte row_number + 100000000, så brude den være unik i hvert fald for en stund.

eller select max(ID) fra din kunde tabel. og så bruge det som start værdien.

Håber det gav lidt inspiration til mulige løsninger.
Avatar billede anri Novice
20. marts 2014 - 11:37 #4
Jo faktisk.

Jeg kan da lægge max(id) fra Kunder ind i en variabel og så selecte (row_number() + @MaxId) as ID på "ordrer" tabellen, så løber jeg aldrig mod noget loft.

Læg du bare et svar, for det var de forslag der lige fik mig væk fra den fastlåste tankegang jeg var kommet ind i her..
Avatar billede Syska Mester
20. marts 2014 - 11:54 #5
Hjælp til selvhjælp er ofte den sjoveste hjælp at give.

svar.

mvh
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