Avatar billede hrc Mester
12. august 2008 - 14:10 Der er 8 kommentarer og
1 løsning

Insert i minimal tabel

Da jeg har brug for et unikt nummer, har jeg lavet mig en tabel der kun indeholder et id identity(1,1). Andre tabeller refererer til denne som fremmednøgle

Kan man lave en insert der opretter recorden (altså uden data)?

Jeg kan ikke og har derfor tilføjet et oprettet-felt som automatisk bliver udfyldt med getdate()

Stadigvæk ikke oprette record. Skulle nok have undladt default-værdien.

Endelig opretter jeg endnu et felt: "dummy bit" som jeg manuelt sætter til 1 og nu kan jeg oprette. Problem løst men kønt er det ikke.

Derfor:

  1. Kan man, med en INSERT, oprette record i en tabel der kun indeholder primærnøglen?

  2. Er der en bedre løsning? Jeg forventer at der senere kommer andre felter i tilbud-tabellen. Med det for øje er det nok den bedste løsning - men jeg savner noget ligesom Firefox' generators.
Avatar billede hrc Mester
12. august 2008 - 14:11 #1
(tabellen hedder tilbud. Det fik jeg ikke fortalt før jeg brugte navnet)
Avatar billede teepee Nybegynder
12. august 2008 - 14:16 #2
Jeg forstår ikke helt dit spørgsmål. man kan da sagtens indsætte en record som er tom (på nær primærnøglen) hvis resten af felter må være tomme (NULL)
Avatar billede hrc Mester
12. august 2008 - 15:10 #3
Min tabel så oprindeligt således ud:

create tilbud
(
  id int identity(1,1) not null,
  primary key (id)
);

Hvordan laver man en "Insert into"-sætning til sådan en?

Nu er den endt med at indeholde 3 felter (oprettet kunne godt fjernes):

create tilbud
(
  id int identity(1,1) not null,
  oprettet datetime default getdate() not null,
  dummy bit,
  primary key (id)
);
Avatar billede arne_v Ekspert
12. august 2008 - 15:20 #4
proev:

INSERT INTO tilbud(dummy) VALUES(NULL)
Avatar billede hrc Mester
12. august 2008 - 16:03 #5
Hej arne: Det har jeg fundet ud af. Det spørgsmålene går på er om man overhovedet kan have en tabel kun bestående af en primærnøgle - og om der er andre måder at få en unik incrementerende værdi (også i et flerbrugermiljø).
Avatar billede arne_v Ekspert
12. august 2008 - 17:38 #6
Avatar billede hrc Mester
12. august 2008 - 22:01 #7
Joo. Sådan omtrent lidt ligesom dette link. Faktisk ret meget. Har du downloadet internettet eller hvad? Google var ikke min ven denne gang.

Løsningen var altså: "insert into tilbud default values"

Et svar, tak.
Avatar billede arne_v Ekspert
12. august 2008 - 22:09 #8
svar
Avatar billede arne_v Ekspert
12. august 2008 - 22:10 #9
Hos mig er det hit nummer 2 i Google ved soegning paa:

insert table only identity column

(og nej - det var ikke foerste soegning jeg proevede - snarere nummer 10)
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