Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Върнете оригиналното начало на колона за идентичност в SQL Server

В SQL Server можете да използвате T-SQL IDENT_SEED() функция за връщане на оригиналното начало на колона за идентичност. Това е оригиналната начална стойност, посочена при създаване на колоната за идентичност.

Синтаксис

Синтаксисът е така:

IDENT_SEED ( 'table_or_view' )

table_or_view Аргументът е израз, който определя таблицата или изгледа за проверка за начална стойност на идентичността.

Пример 1 – Основна употреба

Ето един основен пример за код.

SELECT IDENT_SEED('Pets') AS Result;

Резултат:

+----------+
| Result   |
|----------|
| 1        |
+----------+

В този случай началната стойност на идентичността е 1.

Ето още една заявка, която проверява още таблици.

SELECT 
  IDENT_SEED('Pets') AS Pets,
  IDENT_SEED('BestFriends') AS BestFriends,
  IDENT_SEED('Cities') AS Cities;

Резултат:

+--------+---------------+----------+
| Pets   | BestFriends   | Cities   |
|--------+---------------+----------|
| 1      | 101           | 150      |
+--------+---------------+----------+

Всяка от тези таблици е създадена с различна стойност на началната идентичност.

Пример 2 – Включително схемата

Можете също да включите схемата в аргумента.

SELECT IDENT_SEED('dbo.Pets') AS Result;

Резултат:

+----------+
| Result   |
|----------|
| 1        |
+----------+

Пример 3 – Проверете всички таблици в базата данни

Ето пример за проверка на всички таблици в базата данни за тяхната начална стойност на идентичността.

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;
NULL>>

Резултат:

+----------------+----------------+--------------+
| 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            |
+----------------+----------------+--------------+

Относно връщаната стойност

Връщаната стойност за IDENT_SEED() е numeric(@@MAXPRECISION,0)) . Това означава, че това е числов тип данни с фиксирана точност и мащаб.

Точността зависи от сървъра. @@MAXPRECISION аргумент връща нивото, използвано от десетични и числови типове данни, както е зададено в момента на сървъра. Точността определя максималния общ брой десетични цифри (включва тези от лявата и дясната страна на десетичната запетая).

Вторият аргумент определя мащаб от 0 , което означава, че няма десетични цифри вдясно от десетичната запетая.

Можете да изпълните следната заявка, за да намерите нивото на точност, зададено в момента на вашия сървър:

SELECT @@MAX_PRECISION AS [Max Precision];

Ето резултата в моята система:

+-----------------+
| Max Precision   |
|-----------------|
| 38              |
+-----------------+

Създаване на колона за идентичност

Можете да създадете колона за идентичност, като използвате IDENTITY() свойство във вашия CREATE TABLE или ALTER TABLE изявление.

Друг начин за създаване на колона за идентичност е IDENTITY() функция. Това ви позволява да създадете колона за идентичност, когато използвате SELECT INTO изявление за прехвърляне на данни от един източник към друг.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Представяне на общи изрази за таблици в SQL Server

  2. Скриптирайте всички данни от базата данни на SQL Server

  3. Най-добри практики за аварийно възстановяване на Microsoft SQL Server

  4. SQL Server ПОРЪЧАЙ ПО дата и нулевите последни

  5. Изследване на опциите за изчакване на заключване с нисък приоритет в SQL Server 2014 CTP1