W SQL Server możesz użyć T-SQL IDENT_INCR()
funkcja zwracająca wartość przyrostu kolumny tożsamości. Jest to wartość przyrostu określona podczas tworzenia kolumny tożsamości.
Składnia
Składnia wygląda tak:
IDENT_INCR ( 'table_or_view' )
tabela_lub_widok argument jest wyrażeniem, które określa tabelę lub widok, aby sprawdzić poprawną wartość przyrostu tożsamości.
Przykład 1 – Podstawowe użycie
Oto podstawowy przykład kodu.
SELECT IDENT_INCR('Pets') AS Result;
Wynik:
+----------+ | Result | |----------| | 1 | +----------+
W tym przypadku wartość przyrostu tożsamości wynosi 1.
Oto kolejne zapytanie, które sprawdza więcej tabel.
SELECT IDENT_INCR('Pets') AS Pets, IDENT_INCR('BestFriends') AS BestFriends, IDENT_INCR('Cities') AS Cities;
Wynik:
+--------+---------------+----------+ | Pets | BestFriends | Cities | |--------+---------------+----------| | 1 | 10 | 10 | +--------+---------------+----------+
Przykład 2 – uwzględnienie schematu
Możesz również dołączyć schemat do argumentu.
SELECT IDENT_INCR('dbo.Pets') AS Result;
Wynik:
+----------+ | Result | |----------| | 1 | +----------+
Przykład 3 – Sprawdź wszystkie tabele w bazie danych
Oto przykład sprawdzania wszystkich tabel w bazie danych pod kątem ich wartości początkowej tożsamości.
SELECT TABLE_SCHEMA, TABLE_NAME, IDENT_INCR(TABLE_SCHEMA + '.' + TABLE_NAME) AS IDENT_INCR FROM INFORMATION_SCHEMA.TABLES WHERE IDENT_INCR(TABLE_SCHEMA + '.' + TABLE_NAME) IS NOT NULL;
Wynik:
+----------------+----------------+--------------+ | TABLE_SCHEMA | TABLE_NAME | IDENT_INCR | |----------------+----------------+--------------| | dbo | ConstraintTest | 1 | | dbo | Event | 1 | | dbo | Scoreboard | 1 | | dbo | Pets | 1 | | dbo | BestFriends | 10 | | dbo | Cities | 10 | | dbo | Colors | 1 | +----------------+----------------+--------------+
O wartości zwrotu
Zwracana wartość dla IDENT_INCR()
to numeric(@@MAXPRECISION,0))
. Oznacza to, że jest to numeryczny typ danych o stałej precyzji i skali.
Dokładność zależy od serwera. @@MAXPRECISION
argument zwraca poziom używany przez dziesiętne i numeryczne typy danych zgodnie z bieżącym ustawieniem na serwerze. Precyzja określa maksymalną całkowitą liczbę cyfr dziesiętnych (obejmuje te po lewej i prawej stronie przecinka).
Drugi argument określa skalę 0
, co oznacza, że po prawej stronie miejsca dziesiętnego nie ma cyfr dziesiętnych.
Możesz uruchomić następujące zapytanie, aby znaleźć poziom dokładności aktualnie ustawiony na serwerze:
SELECT @@MAX_PRECISION AS [Max Precision];
Oto wynik w moim systemie:
+-----------------+ | Max Precision | |-----------------| | 38 | +-----------------+
Tworzenie kolumny tożsamości
Możesz utworzyć kolumnę tożsamości za pomocą IDENTITY()
właściwość w Twojej CREATE TABLE
lub ALTER TABLE
oświadczenie.
Innym sposobem na utworzenie kolumny tożsamości jest IDENTITY()
funkcjonować. Umożliwia to utworzenie kolumny tożsamości przy użyciu SELECT INTO
oświadczenie o przesyłaniu danych z jednego źródła do drugiego.