我看到了一个 SP,其中以下列方式调用了标识函数:
select id = identity(10) ..... into ..... from ......
谁能告诉我我是否只能传递 1 个或 2 个参数而不是三个参数(种子、增量、数据类型)?
此外,如果表中的列已定义为标识,是否意味着它将自动生成唯一的序列号?那么这个 identity() 函数到底需要什么?
这里的Sybase 12.0.1 文档说:
IDENTITY 函数 [杂项]
为查询中的每个连续行生成整数值,从 1 开始。它的实现与 NUMBER 函数的实现相同。
句法
IDENTITY( 表达式 ) 参数
• 表达式 表达式。表达式被解析,但在函数执行期间被忽略。
退货
INT
评论
IDENTITY 函数的描述与 NUMBER 函数的描述相同。
也可以看看
•NUMBER函数[杂项]
标准和兼容性
• SQL/2008 供应商扩展。
例子
以下语句返回按顺序编号的员工列表。
SELECT IDENTITY(10), 员工姓氏;
Sybase 与 MS SQL Server 不同,它只处理一个参数。种子和增量始终为 1。
如果选择的数据中有任何标识列,那么它们的值将被复制。该IDENTITY
函数允许您在输出表中创建一个新的标识列。
identity() 不是唯一标识符。它只是意味着它会自动计数。PRIMARY KEY 约束将使列唯一以识别行