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