Jak mogę w tabeli bazy danych, miałem wygląd poprzez forum, ale nie widzę w jaki sposób.auto increment
primary key
SQL Server
Poszukałem właściwości, ale nie widzę opcji, widziałem odpowiedź, w której przechodzisz do Identity
właściwości specyfikacji, ustawiasz ją na tak i ustawiasz na Identity increment
1, ale ta sekcja jest wyszarzona i nie mogę jej zmienić nie na tak.
Musi być prosty sposób, aby to zrobić, ale nie mogę tego znaleźć.
sql-server
sql-server-2012
identity
Ledgemonkey
źródło
źródło
Odpowiedzi:
Upewnij się, że typem danych kolumny Klucz jest,
int
a następnie ręcznie ustaw tożsamość, jak pokazuje obrazekLub po prostu uruchom ten kod
kod zostanie uruchomiony, jeśli
ID
nie jest to jedyna kolumna w tabeliobraz referencyjny fifo's
źródło
IDENTITY
nieruchomość może być stosowana do wszystkich typów danych liczbowych (tak mogło byćtinyint
,smallint
,int
,bigint
,numeric
,decimal
), jedynym ograniczeniem jest to, że nie może reprezentować liczbę ułamkową (tak, to nie może byćfloat
anireal
, aninumeric
czydecimal
ze skalą niezerową ) i ofc specyfikacja tożsamości powinna być zgodna z wybranym typem danych.Podczas tworzenia tabeli możesz utworzyć
IDENTITY
kolumnę w następujący sposób:IDENTITY
Nieruchomość będzie automatycznego przyrostu kolumna się od numeru 1. (Zauważ, że typ danych kolumny musi być liczbą całkowitą). Jeśli chcesz dodać do istniejącej kolumny, użyjALTER TABLE
polecenia.Edycja:
Testowałem trochę i nie mogę znaleźć sposobu na zmianę właściwości tożsamości w oknie Właściwości kolumny dla różnych tabel. Sądzę, że jeśli chcesz uczynić kolumnę kolumną tożsamości, musisz użyć
ALTER TABLE
polecenia.źródło
Musisz rozwinąć sekcję Tożsamość, aby wyświetlić przyrost i ziarno.
Edycja: Założyłem, że masz typ danych liczb całkowitych, a nie char (10). Co jest rozsądne, powiedziałbym i ważne, kiedy opublikowałem tę odpowiedź
źródło
yes
Jest wyszarzona, jak to jestchar(10)
(z komentarzem po prostu pisał)BookID int primary key identity
nie określiłem zarówno nasion, jak i przyrostu, czy to dobra praktyka? ponieważ widzę dokumentację w MSDN Jeśli nie podano żadnej z nich, domyślną wartością jest (1,1).Rozwiń bazę danych, rozwiń tabelę, kliknij tabelę prawym przyciskiem myszy i wybierz projekt z menu rozwijanego.
Teraz przejdź do właściwości kolumny poniżej i przewiń w dół i znajdź specyfikację tożsamości , rozwiń ją, a zobaczysz, że tożsamość sprawia, że tak. Teraz wybierz opcję Zwiększanie tożsamości poniżej, podając wartość, którą chcesz zwiększyć.
źródło
Być może coś mi brakuje, ale dlaczego to nie działa z obiektem SEKWENCJA? Czy nie tego szukasz?
Przykład:
Odnosząc się do kwadratu, powiedzmy, polecenie INSERT, po prostu użyj:
Więcej informacji i opcji dla SEKWENCJI
źródło
IDENTITY
czasami podskakuje, pozostawiając luki, a następnie z powrotem wypełnia te luki. WięcIDENTITY
nie gwarantuje ZAWSZE warunkuGdy używasz typu danych: int, możesz wybrać wiersz, który chcesz automatycznie zwiększyć, i przejść do tagu właściwości kolumny. Tam możesz ustawić tożsamość na „tak”. Można tam również edytować wartość początkową autowzrostu. Mam nadzieję, że mógłbym pomóc;)
źródło
Miałem ten problem, w którym już utworzyłem tabelę i nie mogłem jej zmienić bez upuszczenia tabeli, więc zrobiłem to: (Nie jestem pewien, kiedy to zaimplementowali, ale mieli go w SQL 2016)
Kliknij prawym przyciskiem myszy tabelę w Eksploratorze obiektów:
Script Table as > DROP And CREATE To > New Query Editor Window
Następnie zrób edycję skryptu napisanego przez Josiena; przewiń w dół, gdzie
CREATE TABLE
jest, znajdź swój klucz główny i dopiszIDENTITY(1,1)
na końcu przed przecinkiem. Uruchom skrypt.Skrypt DROP i CREATE również był dla mnie pomocny z powodu tego problemu. (Co obsługuje wygenerowany skrypt).
źródło
Zachowaj ostrożność, jeśli chcesz, aby elementy ID były równe, czy nie. Identyfikator SQLSERVER może przeskoczyć o 1000.
Przykład: przed ponownym uruchomieniem ID = 11 po ponownym uruchomieniu wstawiasz nowy wiersz do tabeli, wówczas identyfikator będzie wynosił 1012.
źródło
Możesz użyć słowa kluczowego
IDENTITY
jako typu danych do kolumny wraz zPRIMARY KEY
ograniczeniem podczas tworzenia tabeli.dawny:
Tutaj pierwsza „1” oznacza wartość początkową, a druga „1” jest wartością rosnącą.
źródło
MS SQL Server używa słowa kluczowego IDENTITY, aby wykonać funkcję automatycznego przyrostu.
W powyższym przykładzie wartość początkowa TOŻSAMOŚCI wynosi 1 i będzie zwiększana o 1 dla każdego nowego rekordu.
Wskazówka: Aby określić, że kolumna „Personid” powinna zaczynać się od wartości 10 i zwiększać ją o 5, zmień ją na TOŻSAMOŚĆ (10,5).
Aby wstawić nowy rekord do tabeli „Osoby”, NIE będziemy musieli określać wartości dla kolumny „Personid” (unikalna wartość zostanie dodana automatycznie):
źródło
Jeśli tabela jest już zapełniona, nie można zmienić kolumny na kolumnę IDENTITY ani przekonwertować jej na kolumnę non-IDENTITY. Musisz wyeksportować wszystkie dane, możesz zmienić typ kolumny na TOŻSAMOŚĆ lub odwrotnie, a następnie zaimportować dane z powrotem. Wiem, że jest to bolesny proces, ale wierzę, że nie ma alternatywy oprócz użycia sekwencji, jak wspomniano w tym poście.
źródło
ALTER TABLE ... SWITCH
do przełączenia metadanych bez konieczności dotykania danych. np. Zobacz, jak ustawić automatyczny przyrost po utworzeniu tabeli bez utraty danych?