SQL Server 2008 og NULL

Tags:    databaser

Hej Alle sammen,

Jeg har lige et spørgsmål angående NULL værdier i basen.

Sagen er den, at jeg har oprettet en tabel:

Create table Test
(
Navn varchar(20),
alder int
);


insert into Test(alder) values(30);


Mit problem er når jeg skriver Select * from test ...så viser den

Null , 30

Hvor kom den NULL fra. Jeg vil have når jeg ikke indsætter noget i navn feltet, skal den være tom..

Hvad er muligheder her, hvad kan jeg gøre ?




7 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Nej, den sætter åbenbart null ind i stedet, kan du nok se :) NULL er altså ikke en dårlig ting at have stående, det viser jo netop at der IKKE er noget data i feltet - ikke engang en tom streng.



Ellers kan du give dit felt en default value. Så får feltet den værdi med mindre du giver det en anden :)

Mvh.

Kasper (TSW)



Så indsæt en tom streng?
insert into Test (Navn, alder) values ("",30);
Forstår heller ikke hvorfor du vil det.. Og hvorfor vil du ikke have null?




Grunden til jeg ikek vil have null er fordi jeg er vandt til se felet tom....men pludselig ser der NULL værdier!


Sæt tom streng ind...burde den ikke selv klare det automatisk ?!



NULL fortæller at din attribut "navn" ikke har nogen eksisterende værdi. Grunden til du får denne er at du i dit insert ikke fortæller, den skal sætte noget ind.

Du kan gøre som Kasper foreslår, at sætte et default værdi som er en tomstreng.

Det kunne gøres således:

Create table Test
(
Navn VARCHAR(20) SET DEFAULT '',
alder INT
);

Du kan evt også sætte dine felter til NOT NULL, og derved kan de ikke indeholde en NULL. Så er du bare tvungen til at din attribut (felt) indeholder noget, som kunne være en default.



Indlæg senest redigeret d. 30.10.2009 10:08 af Bruger #6559

Fint...Hvordan accepter med et svar....og tildele point ?

Kan ikke se nogen knapp med tekst Accepter....:)



Det gør du allernederst i tråden :)

Mvh.

Kasper (TSW)



t