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

Zwróć wartość przyrostu kolumny tożsamości w SQL Server

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak dodać lub upuścić kolumnę z tabeli włączonej usługi CDC bez utraty danych w bazie danych programu SQL Server — samouczek programu SQL Server

  2. Znajdź indeks ostatniego wystąpienia podciągu za pomocą T-SQL

  3. Uwierzytelnianie SQL Server a uwierzytelnianie Windows:którego używać i kiedy

  4. Wydajność zapytania SQL Server 2005

  5. Instalacja klastra pracy awaryjnej serwera SQL -1