Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » SQL 方言和兼容性 » SQL 方言 » 为实现 Transact-SQL 兼容性配置数据库

 

特殊 IDENTITY 列

IDENTITY 列存储顺序编号,如自动生成的发票编号和雇员编号。IDENTITY 列的值唯一地标识表中的每一行。

在 Adaptive Server Enterprise 中,数据库中的每个表只能有一个 IDENTITY 列。其数据类型必须是不带小数位的数值,而且 IDENTITY 列不应允许空值。

在 SQL Anywhere 中,IDENTITY 列是列缺省设置。您可以使用 INSERT 语句将不在序列中的值显式地插入列中。如果 identity_insert 选项不是 on,Adaptive Server Enterprise 将不允许使用 INSERT 将值插入 IDENTITY 列。在 SQL Anywhere 中,您需要自己设置 NOT NULL 属性并确保只有一个列是 IDENTITY 列。SQL Anywhere 允许任何数字数据类型成为 IDENTITY 列。推荐使用整数数据类型以获得更佳性能。

在 SQL Anywhere 中,IDENTITY 列和某列的 AUTOINCREMENT 缺省设置是相同的。

要创建 IDENTITY 列,请使用以下 CREATE TABLE 语法,其中 n 足够大,可以容纳可能在表中插入的最大行数的值:

CREATE TABLE table-name (
   ...
   column-name numeric(n,0) IDENTITY NOT NULL,
   ...
)

使用 @@identity 检索 IDENTITY 列值