В SQL Server можете да използвате T-SQL IDENT_INCR()
функция за връщане на стойността на увеличение на колона за идентичност. Това е стойността на увеличение, посочена при създаване на колоната за идентичност.
Синтаксис
Синтаксисът е така:
IDENT_INCR ( 'table_or_view' )
table_or_view Аргументът е израз, който определя таблицата или изгледа за проверка за валидна стойност на увеличение на идентичността.
Пример 1 – Основна употреба
Ето един основен пример за код.
SELECT IDENT_INCR('Pets') AS Result;
Резултат:
+----------+ | Result | |----------| | 1 | +----------+
В този случай стойността на увеличението на идентичността е 1.
Ето още една заявка, която проверява още таблици.
SELECT IDENT_INCR('Pets') AS Pets, IDENT_INCR('BestFriends') AS BestFriends, IDENT_INCR('Cities') AS Cities;
Резултат:
+--------+---------------+----------+ | Pets | BestFriends | Cities | |--------+---------------+----------| | 1 | 10 | 10 | +--------+---------------+----------+
Пример 2 – Включително схемата
Можете също да включите схемата в аргумента.
SELECT IDENT_INCR('dbo.Pets') AS Result;
Резултат:
+----------+ | Result | |----------| | 1 | +----------+
Пример 3 – Проверете всички таблици в базата данни
Ето пример за проверка на всички таблици в базата данни за тяхната начална стойност на идентичността.
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;NULL>>
Резултат:
+----------------+----------------+--------------+ | 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 | +----------------+----------------+--------------+
Относно връщаната стойност
Връщаната стойност за IDENT_INCR()
е numeric(@@MAXPRECISION,0))
. Това означава, че това е числов тип данни с фиксирана точност и мащаб.
Точността зависи от сървъра. @@MAXPRECISION
аргумент връща нивото, използвано от десетични и числови типове данни, както е зададено в момента на сървъра. Точността определя максималния общ брой десетични цифри (включва тези от лявата и дясната страна на десетичната запетая).
Вторият аргумент определя мащаб от 0
, което означава, че няма десетични цифри вдясно от десетичната запетая.
Можете да изпълните следната заявка, за да намерите нивото на точност, зададено в момента на вашия сървър:
SELECT @@MAX_PRECISION AS [Max Precision];
Ето резултата в моята система:
+-----------------+ | Max Precision | |-----------------| | 38 | +-----------------+
Създаване на колона за идентичност
Можете да създадете колона за идентичност, като използвате IDENTITY()
свойство във вашия CREATE TABLE
или ALTER TABLE
изявление.
Друг начин за създаване на колона за идентичност е IDENTITY()
функция. Това ви позволява да създадете колона за идентичност, когато използвате SELECT INTO
изявление за прехвърляне на данни от един източник към друг.