Podsumowanie: w tym samouczku dowiesz się, jak używać właściwości SQL Server IDENTITY
do dodawania kolumny tożsamości do tabeli.
Wprowadzenie do kolumny tożsamości SQL Server
aby utworzyć kolumnę tożsamości dla tabeli, należy użyć właściwości IDENTITY
w następujący sposób:
Code language: SQL (Structured Query Language) (sql)
w tej składni:
seed
jest wartością pierwszego wiersza załadowanego do tabeli.,increment
jest przyrostową wartością dodaną do wartości tożsamości poprzedniego wiersza.
domyślną wartościąseed
Iincrement
jest 1, tzn. (1,1). To znaczy, że pierwszy wiersz, który został załadowany do tabeli, będzie miał wartość one, drugi wiersz będzie miał wartość 2 i tak dalej.,
Załóżmy, że chcesz, aby wartość kolumny identity pierwszego wiersza wynosiła 10, a wartość przyrostowa to 10, używasz następującej składni:
Code language: SQL (Structured Query Language) (sql)
zauważ, że SQL Server pozwala mieć tylko jedną kolumnę identity na tabelę.,Przykład NTITY
utwórzmy nowy schemat o nazwie hr
do Ćwiczenia:
Code language: SQL (Structured Query Language) (sql)
poniższe polecenie tworzy nową tabelę przy użyciu właściwości IDENTITY
dla kolumny osobistego numeru identyfikacyjnego:
najpierw Wstaw nową tabelę wiersz do person
tabela:
wyjście jest następujące:
jak widać wyraźnie z wyjścia, pierwszy wiersz został załadowany z wartością jednego w kolumnie person_id
.,
Po Drugie, Wstaw inny wiersz do person
tabela:
oto wyjście:
jako widać wyraźnie z wyjścia, drugi wiersz ma wartość dwóch w kolumnie person_id
.
ponowne użycie wartości tożsamości
SQL Server nie wykorzystuje ponownie wartości tożsamości. Jeśli wstawisz wiersz do kolumny identity, a instrukcja insert nie powiedzie się lub zostanie wycofana, wartość identity zostanie utracona i nie zostanie ponownie wygenerowana., Powoduje to luki w kolumnie tożsamość.
rozważ poniższy przykład.
Po pierwsze, utwórz dwie kolejne tabele w schemacie hr o nazwie position
I person_position
:
Po Drugie, Wstaw nową osobę i przypisz jej nową pozycję, wstawiając nowy wiersz do tabeli person_position
:
w tym przykładzie pierwsza instrukcja INSERT została wykonana pomyślnie. Jednak druga nie powiodła się z powodu braku pozycji o id one w tabeli position
. Z powodu błędu cała transakcja została wycofana.,
ponieważ pierwsze polecenie INSERT
przyjmowało wartość tożsamościową trzech i transakcja została wycofana, Następna wartość tożsamości będzie równa czterem, jak pokazano w następującym poleceniu: