W SQL Server możesz użyć T-SQL IDENT_SEED()
funkcja, aby zwrócić oryginalne źródło kolumny tożsamości. Jest to oryginalna wartość inicjatora określona podczas tworzenia kolumny tożsamości.
Składnia
Składnia wygląda tak:
IDENT_SEED ( 'table_or_view' )
tabela_lub_widok argument to wyrażenie określające tabelę lub widok do sprawdzenia wartości inicjatora tożsamości.
Przykład 1 – Podstawowe użycie
Oto podstawowy przykład kodu.
SELECT IDENT_SEED('Pets') AS Result;
Wynik:
+----------+ | Result | |----------| | 1 | +----------+
W tym przypadku wartość inicjatora tożsamości to 1.
Oto kolejne zapytanie, które sprawdza więcej tabel.
SELECT IDENT_SEED('Pets') AS Pets, IDENT_SEED('BestFriends') AS BestFriends, IDENT_SEED('Cities') AS Cities;
Wynik:
+--------+---------------+----------+ | Pets | BestFriends | Cities | |--------+---------------+----------| | 1 | 101 | 150 | +--------+---------------+----------+
Każda z tych tabel została utworzona z inną wartością tożsamości nasion.
Przykład 2 – uwzględnienie schematu
Możesz również dołączyć schemat do argumentu.
SELECT IDENT_SEED('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_SEED(TABLE_SCHEMA + '.' + TABLE_NAME) AS IDENT_SEED FROM INFORMATION_SCHEMA.TABLES WHERE IDENT_SEED(TABLE_SCHEMA + '.' + TABLE_NAME) IS NOT NULL;
Wynik:
+----------------+----------------+--------------+ | TABLE_SCHEMA | TABLE_NAME | IDENT_SEED | |----------------+----------------+--------------| | dbo | ConstraintTest | 1 | | dbo | Event | 1 | | dbo | Scoreboard | 1 | | dbo | Pets | 1 | | dbo | BestFriends | 101 | | dbo | Cities | 150 | | dbo | Colors | 1 | +----------------+----------------+--------------+
O wartości zwrotu
Zwracana wartość dla IDENT_SEED()
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 Twoim 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.