IDENTITY(函数)(Transact-SQL)

只用于在带有 INTO table 子句的 SELECT 语句中将标识列插入到新表中。

尽管类似,但是 IDENTITY 函数不是与 CREATE TABLE 和 ALTER TABLE 一起使用的 IDENTITY 属性。

主题链接图标Transact-SQL 语法约定

语法

IDENTITY (data_type [ , seed , increment ] ) AS column_name

参数

  • data_type
    标识列的数据类型。标识列的有效数据类型可以是任何整数数据类型类别的数据类型(bit 数据类型除外),也可以是 decimal 数据类型。
  • seed
    要分配给表中第一行的整数值。为每一个后续行分配下一个标识值,该值等于上一个 IDENTITY 值加上 increment 值。如果既没有指定 seed,也没有指定 increment ,那么它们都默认为 1。
  • increment
    要加到表中后续行的 seed 值上的整数值。
  • column_name
    将插入到新表中的列的名称。

返回类型

返回与 data_type 相同的数据类型。

备注

因为该函数在表中创建一个列,所以必须用下列方式中的一种在选择列表中指定该列的名称:

--(1)
SELECT IDENTITY(int, 1,1) AS ID_Num
INTO NewTable
FROM OldTable

--(2)
SELECT ID_Num = IDENTITY(int, 1, 1)
INTO NewTable
FROM OldTable

示例

以下示例将来自 AdventureWorks 数据库中 Contact 表的所有行都插入到名为 NewContact 的新表。使用 IDENTITY 函数在 NewContact 表中从 100 而不是 1 开始编标识号。

USE AdventureWorks;
GO
IF OBJECT_ID (N'Person.NewContact', N'U') IS NOT NULL
    DROP TABLE Person.NewContact;
GO
ALTER DATABASE AdventureWorks SET RECOVERY BULK_LOGGED;
GO
SELECT  IDENTITY(smallint, 100, 1) AS ContactNum,
        FirstName AS First,
        LastName AS Last
INTO Person.NewContact
FROM Person.Contact;
GO
ALTER DATABASE AdventureWorks SET RECOVERY FULL;
GO
SELECT ContactNum, First, Last FROM Person.NewContact;
GO

请参阅

参考

CREATE TABLE (Transact-SQL)
@@IDENTITY (Transact-SQL)
IDENTITY(属性)(Transact-SQL)
SELECT @local\_variable (Transact-SQL)

其他资源

使用系统函数

帮助和信息

获取 SQL Server 2005 帮助