【问题标题】:IDENTITY() function in SQLSQL 中的 IDENTITY() 函数
【发布时间】:2013-05-11 07:25:13
【问题描述】:

我看到了一个 SP,其中的身份函数以下列方式调用:

select id = identity(10) ..... into ..... from ......

谁能告诉我我是否只能传递 1 个或 2 个参数而不是三个参数(SEED、INCREMENT、数据类型)?

另外,如果表中的列已经定义为标识,是不是意味着它会自动生成一个唯一的序列号?那么这个identity()函数到底需要什么?

【问题讨论】:

    标签: tsql sybase


    【解决方案1】:

    Sybase 12.0.1 文档here 说:

    IDENTITY 函数 [杂项]

    为 a 中的每个连续行生成整数值,从 1 开始 询问。其实现与 NUMBER 函数相同。

    语法

    IDENTITY(表达式)参数

    • 表达式 一个表达式。表达式已解析,但被忽略 在函数执行期间。

    返回

    INT

    备注

    IDENTITY函数的描述同 NUMBER 函数的说明。

    另见

    •NUMBER 函数[杂项]

    标准和兼容性

    • SQL/2008 供应商扩展。

    例子

    以下语句返回一个按顺序编号的列表 员工。

    从员工中选择 IDENTITY(10),姓氏;

    与 MS SQL Server 不同,Sybase 只处理一个参数。种子和增量始终为 1。

    如果选择的数据中有任何标识列,则它们的值将被复制。 IDENTITY 函数允许您在输出表中创建一个新的标识列。

    【讨论】:

      【解决方案2】:

      identity() 不是唯一标识符。它只是意味着它会自动计数。 PRIMARY KEY 约束将使列唯一以识别行

      【讨论】:

      • 好吧。但是我分享的查询,identity() 函数只传递了一个参数。那我怎么知道是通过了SEED还是INCREMENT。另外,即使是这两个之一,另一个没有通过的会变成什么?它有什么价值?
      猜你喜欢
      • 2023-03-11
      • 1970-01-01
      • 2011-01-31
      • 2018-01-02
      • 2013-01-04
      • 1970-01-01
      • 2011-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多