Primaire sleutel automatisch verhogen in SQL Server Management Studio 2012

Hoe auto incrementde PRIMARY KEYin een SQL Serverdatabasetabel, 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 IDENTITYspecificatie-eigenschap gaat en deze instelt op ja en de Identity incrementnaar 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 intis en stel vervolgens de identiteit handmatig in, zoals op de afbeelding te zien is

voer hier de afbeeldingsbeschrijving in

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 IDniet de enige kolom in de tabel is

afbeelding referentie fifo’s


Antwoord 2, autoriteit 27%

Wanneer u de tabel maakt, kunt u een IDENTITYkolom als volgt:

CREATE TABLE (
  ID_column INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
  ...
);

De eigenschap IDENTITYverhoogt 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 TABLEcommando.

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.

voer hier de afbeeldingsbeschrijving in

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.
IT ziet er zo uit

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.
voer hier de afbeeldingsbeschrijving in


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 TABLEis, 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 IDENTITYgebruiken als gegevenstype voor de kolom, samen met de beperking PRIMARY KEYbij 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.

Other episodes