• 相关软件
    >IDENTITY(函数) 创建者:webmaster 更新时间:2006-02-16 15:51

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



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



    语法


    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


    示例


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



    USE pubs
    IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
        WHERE TABLE_NAME = 'employees')
      DROP TABLE employees
    GO
    EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'true'

    SELECT emp_id AS emp_num,
      fname AS first,
      minit AS middle,
      lname AS last,
      IDENTITY(smallint, 100, 1) AS job_num,
      job_lvl AS job_level,
      pub_id,
      hire_date
    INTO employees
    FROM employee
    GO
    USE pubs
    EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'false'
    相关文章
    本页查看次数: