В 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
изявление за прехвърляне на данни от един източник към друг.