Har relativt nyligen börjat använda sql-server och skulle nu behöva hjälp med ett säkert ganska enkelt problem. Vet inte om jag förstått exakt vad du egentligen vill, men för att få ett Det hade du förstått alldeles rätt och det funkade precis som jag tänkt mig! Precis som det svar du redan fått beskrev så använder man sig av Identity ja. Om du vill skriva det i SQL så ser det ut så här:Löpande Primärnyckel
Om jag vill lägga till en post i min databas men inte ange någon primärnyckel, utan vill att databasen ska sätta nyckeln till det löpande numret som läggs till. Det vill säga att jag vill att det första posten i tabellen ska ha primärnyckelns värde till 1, den andra till 2 och så vidare... jag vill endast fylla på värden i de övriga fältet och alltså att den primära nyckel i tabellen tilldelas av sig själv.
Hur ska jag då bära mig åt? Finns det inställningar i programmet till detta och hur ska min sql-sträng för INSERT se ut?
Blev det rörigt? Hoppas ni förstår.
Tacksam för svar!
/HempaSv: Löpande Primärnyckel
fällt i SQL att automatiskt räkna upp poster öppnar du tabellen i genom
att höger klicka på den och välja "Design Tabel".
Sätt sen datatypen till tex int och välj Identity = yes (ligger i rutan underst)
Då kommer den själv att räkna upp en post varje gång du lägger in data
i den tabellen.
MarkusSv: Löpande Primärnyckel
Tackar o bugar!Sv: Löpande Primärnyckel
/* Primärnyckelraden behöver du endast ha med om du vill att kolumnen ska vara primärnyckel, annars är det bara att ta bort den. */
CREATE TABLE foo
(
colA int IDENTITY(1,1) -- Den första parametern är startvärde för räknaren, det andra antal steg per uppäkning
CONSTRAINT pkfoo PRIMARY KEY NONCLUSTERED
, colB int NOT NULL
, colC varchar(50) NOT NULL
)
GO
INSERT INTO foo (colB, colC) VALUES (1, 'en sträng')
SELECT * FROM foo
-- ger resultatet:
-- colA colB colC
-- 1 1 en sträng