Поделиться через


IDENT_INCR (Transact-SQL)

Возвращает добавочное значение (тип numeric (**@@**MAXPRECISION,0)), указанное во время создания столбца с уникальным идентификатором в таблице или представлении, которые содержат столбец идентификаторов.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

IDENT_INCR ( 'table_or_view' )

Аргументы

  • ' table_or_view '
    Выражение, указывающее таблицу или представление для проверки на наличие допустимого значения шага приращения идентификатора. Аргумент table_or_view может быть строковой константой, заключенной в кавычки, переменной, функцией или именем столбца. Аргумент table_or_view имеет тип char, nchar, varchar или nvarchar.

Типы возвращаемых данных

numeric

Исключения

Возвращает значение NULL в случае ошибки или если участник не имеет разрешений для просмотра объекта.

В SQL Server пользователь может просматривать только метаданные защищаемых объектов, которыми он владеет или на которые ему были предоставлены разрешения. Это означает, что встроенные функции, создающие метаданные, такие как IDENT_INCR, могут вернуть значение NULL в случае, если пользователь не имеет разрешений на объект. Дополнительные сведения см. в разделе Настройка видимости метаданных.

Примеры

А.Возврат значения приращения для указанной таблицы

Следующий пример возвращает значение приращения для таблицы Person.Address в базе данных AdventureWorks.

USE AdventureWorks2012;
GO
SELECT IDENT_INCR('Person.Address') AS Identity_Increment;
GO
USE AdventureWorks2012;
GO
SELECT IDENT_INCR('Person.Address') AS Identity_Increment;
GO

Б.Возврат значения приращения из нескольких таблиц

В следующем примере функция возвращает таблицы базы данных AdventureWorks, содержащие столбцы идентификаторов с увеличивающимся значением.

USE AdventureWorks2012;
GO
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;
USE AdventureWorks2012;
GO
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;

Здесь приводится частичный результирующий набор.

TABLE_SCHEMA        TABLE_NAME                IDENT_INCR

------------        ------------------------  ----------

Person              Address                            1

Production          ProductReview                      1

Production          TransactionHistory                 1

Person              AddressType                        1

Production          ProductSubcategory                 1

Person              vAdditionalContactInfo             1

dbo                 AWBuildVersion                     1

Production          BillOfMaterials                    1

См. также

Справочник

Выражения (Transact-SQL)

Системные функции (Transact-SQL)

IDENT_CURRENT (Transact-SQL)

IDENT_SEED (Transact-SQL)

DBCC CHECKIDENT (Transact-SQL)

sys.identity_columns (Transact-SQL)