Hoe auto increment
de PRIMARY KEY
in een SQL Server
databasetabel, ik heb het forum bekeken, maar kan ik zie niet hoe.
Ik heb de eigenschappen bekeken maar zie geen optie, ik heb een antwoord gezien waarbij je naar de IDENTITY
specificatie-eigenschap gaat en deze instelt op ja en de Identity increment
naar 1, maar dat gedeelte wordt grijs weergegeven en ik kan nee niet in ja veranderen.
Er moet een eenvoudige manier zijn om dit te doen, maar ik kan het niet vinden.
Antwoord 1, autoriteit 100%
Zorg ervoor dat het gegevenstype van de kolom Sleutel int
is en stel vervolgens de identiteit handmatig in, zoals op de afbeelding te zien is
Of voer deze code gewoon uit
-- ID is the name of the [to be] identity column
ALTER TABLE [yourTable] DROP COLUMN ID
ALTER TABLE [yourTable] ADD ID INT IDENTITY(1,1)
de code wordt uitgevoerd als ID
niet de enige kolom in de tabel is
afbeelding referentie fifo’s
Antwoord 2, autoriteit 27%
Wanneer u de tabel maakt, kunt u een IDENTITY
kolom als volgt:
CREATE TABLE (
ID_column INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
...
);
De eigenschap IDENTITY
verhoogt automatisch de kolom vanaf nummer 1. (Merk op dat het gegevenstype van de kolom een geheel getal moet zijn.) Als u dit aan een bestaande kolom wilt toevoegen , gebruik een ALTER TABLE
commando.
Bewerken:
Een beetje getest en ik kan geen manier vinden om de identiteitseigenschappen te wijzigen via het venster Kolomeigenschappen voor verschillende tabellen. Ik denk dat als je van een kolom een identiteitskolom wilt maken, je een ALTER TABLE
-opdracht MOET gebruiken.
Antwoord 3, autoriteit 12%
Je moet het gedeelte Identiteit uitvouwen om increment en seed zichtbaar te maken.
Bewerken: ik ging ervan uit dat je een integer datatype zou hebben, niet char(10). Dat is redelijk zou ik zeggen en geldig toen ik dit antwoord plaatste
Antwoord 4, autoriteit 6%
Breid uw database uit, vouw uw tabel uit, klik met de rechtermuisknop op uw tafel en selecteer ontwerpin de vervolgkeuzelijst.
Ga nu naar Kolomeigenschappeneronder, scroll naar beneden en zoek Identiteitsspecificatie, vouw het uit en je zult zien dat Is Identityhet Ja maakt. Kies nu Identity Incrementer direct onder en geef de waarde die u erin wilt verhogen.
Antwoord 5
Misschien mis ik iets, maar waarom werkt dit niet met het SEQUENCE-object? Is dit niet wat u zoekt?
Voorbeeld:
CREATE SCHEMA blah.
GO
CREATE SEQUENCE blah.blahsequence
START WITH 1
INCREMENT BY 1
NO CYCLE;
CREATE TABLE blah.de_blah_blah
(numbers bigint PRIMARY KEY NOT NULL
......etc
Als je naar de squence verwijst in bijvoorbeeld een INSERT-commando, gebruik dan:
NEXT VALUE FOR blah.blahsequence
Meer informatie en opties voor SEQUENCE
Antwoord 6
Als u Data Type: int gebruikt, kunt u de rij selecteren die u automatisch wilt laten ophogen en naar de kolomeigenschappen-tag gaan. Daar kunt u de identiteit op ‘ja’ zetten. De startwaarde voor auto-increment kan daar ook worden bewerkt. Ik hoop dat ik kan helpen 😉
Antwoord 7
CREATE TABLE Persons (
Personid int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
De MS SQL Server gebruikt het IDENTITY-sleutelwoord om een functie voor automatisch verhogen uit te voeren.
In het bovenstaande voorbeeld is de startwaarde voor IDENTITY 1 en wordt deze met 1 verhoogd voor elke nieuwe record.
Tip: als u wilt specificeren dat de kolom ‘Personid’ moet beginnen met waarde 10 en moet worden verhoogd met 5, wijzigt u deze in IDENTITY(10,5).
Om een nieuw record in de tabel “Personen” in te voegen, hoeven we GEEN waarde op te geven voor de kolom “Personid” (een unieke waarde wordt automatisch toegevoegd):
Antwoord 8
Ik had dit probleem waarbij ik al de tabel had gemaakten het niet kon veranderen zonder de tabel te laten vallen, dus wat ik deed was:
(Niet zeker wanneer ze dit hebben geïmplementeerd, maar hadden het in SQL 2016)
Klik met de rechtermuisknop op de tabel in de Objectverkenner:
Script Table as > DROP And CREATE To > New Query Editor Window
Voer vervolgens de bewerking van het script uit dat door Josien is gezegd; scrol naar beneden waar de CREATE TABLE
is, zoek je primaire sleutel en voeg IDENTITY(1,1)
toe aan het einde voor de komma. Script uitvoeren.
Het DROP- en CREATE-script was ook nuttig voor mij vanwege dit probleem.(Wat het gegenereerde script afhandelt.)
Antwoord 9
U kunt het trefwoord IDENTITY
gebruiken als gegevenstype voor de kolom, samen met de beperking PRIMARY KEY
bij het maken van de tabel.
bijv:
StudentNumber IDENTITY(1,1) PRIMARY KEY
Hier betekent de eerste ‘1’ de startwaarde en de tweede ‘1’ de oplopende waarde.
Antwoord 10
Als de tabel al is gevuld, is het niet mogelijk om een kolom te wijzigen in IDENTITY-kolom of om te zetten in een niet-IDENTITY-kolom. U zou alle gegevens moeten exporteren, dan kunt u het kolomtype wijzigen in IDENTITY of vice versa en vervolgens gegevens terug importeren.
Ik weet dat het een pijnlijk proces is, maar ik geloof dat er geen alternatief is behalve het gebruik van de volgorde zoals vermeld in dit bericht.
Antwoord 11
Wees voorzichtig of u wilt dat de ID-elementen contigius zijn of niet. Aangezien SQLSERVER ID met 1000 kan springen.
Voorbeeld: voor herstart ID=11
na herstart voeg je een nieuwe rij in de tabel in, dan is de id 1012.