Autonumeracja – Identity w MsSQL

1. Jak numerować kolejne rekordy w SQL Server?

Autonumeracja w SQL Server może odbywać się na dwa sposoby. Możemy nadać kolumnie atrybut IDENTITY(). Możemy też wykorzystać do tego tzw. sekwencje. W kursie sql server opiszę obie metody autonumeracji. W tym artykule dowiesz się jak wykorzystać do tego atrybut IDENTITY oraz jak go połączyć z kluczem głównym tabeli.

2. Autonumeracja w SQL Server za pomocą atrybytu IDENTITY.

Najprostszą metodą numeracji kolejnych rekordów w kolumnie jest zastosowanie atrybutu IDENTITY. W jaki sposób to zrobić? Podczas tworzenia nowej tabeli zaraz za typem danych wstaw atrybut IDENTITY(1, 1). Tak stworzony identyfikator będzie zaczynał się od wartości 1. Z każdym dodatkowym rekordem wartość identyfikatora będzie wzrastać o 1. Przykładowo, jeśli chcesz, by Twój identyfikator zaczynał się od liczby milion i przyrastał zawsze o 10 wartości w górę, powinieneś zapisać to w ten sposób: IDENTITY(1000000, 10). Identyfikator IDENTITY przydaje się przy tworzeniu klucza głównego tabeli – PRIMARY KEY, o czym możesz więcej przeczytać w artykule o Constraintach w SQL Server.

--tomaszkenig.pl
CREATE TABLE MY_TABLE (COLUMN_1 BIGINT identity(1,1),
COLUMN_2 NVARCHAR(255));
go

INSERT INTO MY_TABLE (COLUMN_2) VALUES ('sql server tutorial 1');
INSERT INTO MY_TABLE (COLUMN_2) VALUES ('sql server tutorial 2');
INSERT INTO MY_TABLE (COLUMN_2) VALUES ('sql server tutorial 3');
go

select * from MY_TABLE;

Po nadaniu kolumnie atrybutu IDENTITY, kolumna automatycznie nie może przyjąć wartości NULL.

3. Autonumeracja IDENTITY, a klucz główny PRIMARY KEY.

W jaki sposób połączyć autonumerację z kluczem głównym? Najłatwiej to zrobić podczas tworzenia nowej tabeli. Podczas opisywania nazw column wstaw Constraint PRIMARY KEY jak na przykładzie poniżej.

--tomaszkenig.pl
CREATE TABLE MY_TABLE (COLUMN_1 BIGINT constraint prm_ky PRIMARY KEY IDENTITY(1,1),
COLUMN_2 NVARCHAR(255));
go

INSERT INTO MY_TABLE (COLUMN_2) VALUES ('sql server tutorial 1');
INSERT INTO MY_TABLE (COLUMN_2) VALUES ('sql server tutorial 2');
INSERT INTO MY_TABLE (COLUMN_2) VALUES ('sql server tutorial 3');
go

select * from MY_TABLE;
Autonumeracja w SQL Server IDENTITY
Autonumeracja w SQL Server IDENTITY

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *