3

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

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

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

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

4

2 回答 2

1

这里的Sybase 12.0.1 文档说:

IDENTITY 函数 [杂项]

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

句法

IDENTITY( 表达式 ) 参数

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

退货

INT

评论

IDENTITY 函数的描述与 NUMBER 函数的描述相同。

也可以看看

•NUMBER函数[杂项]

标准和兼容性

• SQL/2008 供应商扩展。

例子

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

SELECT IDENTITY(10), 员工姓氏;

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

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

于 2013-05-16T13:14:40.003 回答
0

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

于 2013-05-16T12:06:48.477 回答