Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zwróć oryginalne ziarno kolumny tożsamości w SQL Server

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 sposoby na uzyskanie typu danych kolumny w SQL Server (T-SQL)

  2. Błąd serwera SQL 109:W instrukcji INSERT jest więcej kolumn niż wartości określonych w klauzuli VALUES

  3. Jaka jest maksymalna liczba znaków dla NVARCHAR(MAX)?

  4. Recenzja oprogramowania — naprawa gwiezdna dla MS SQL

  5. Jak używać instrukcji Case do formatowania warunkowego w wybranym zapytaniu — samouczek SQL Server / TSQL, część 116