SQLServer2000中怎么得到自动编号字段-创新互联

SQLServer2000中怎么得到自动编号字段,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

创新互联是工信部颁发资质IDC服务器商,为用户提供优质的成都托管服务器服务

SQLServer2000中设计表时如何得到自动编号字段

①像Access中的自动编号字段

右键你的表-->设计表-->找到你的id字段(类int型)-->标识-->是-->标识种子(初始值)-->标识递增量-->OK

②用IDENTITY(SEED,INCREMENT)参数

seed-启始值

increment-增量

CREATETABLE表名(

你的IDIDENTITY(1,1)NOTNULL,你的其他字段...)

CREATETABLE表名(

你的字段IDAUTOINCREMENT(1000,10),其他字段...)

③修改起始值和步进值

ALTERTABLE表名ALTERCOLUMN你的字段IDCOUNTER(2000,50)

④让一个删空的表自动增加字段的开始值重新从1开始

ALTERTABLE表名ALTERCOLUMN你的字段IDCOUNTER(1,1)

上述34只适用与Access,COUNTER为其一种数据类型,可以在Access中指定一不是自动编号的字段为自动编号字段,也可以让一自动编号字段重新从指定值按指定步长自动编号。但是假如表中有数据,用户不能用该语句来将该列的数据类型改变为COUNTER数据类型。对于SQLServer并不支持。

对于SQLServer我们或许总希望用AlterTable表名AlterColumn你的字段IDENTITY(1,1)

来指定字段重新从1开始计数,但是这句话本身是错误的,好长时间我也疑惑为什么这句话不能执行。假如我们看看MS对AlterTable语句的定义就清楚了,这句话根本是错误的。下面是MS对AlterTable语句的定义。

SQLServer2000中设计表时如何得到自动编号字段

以下为引用的内容:

ALTERTABLEtable

{[ALTERCOLUMNcolumn_name

{new_data_type[(precision[,scale])]

[COLLATE]

[NULL|NOTNULL]

|{ADD|DROP}ROWGUIDCOL}

]

|ADD

{[]

|column_nameAScomputed_column_expression

}[,...n]

|[WITHCHECK|WITHNOCHECK]ADD

{}[,...n]

|DROP

{[CONSTRAINT]constraint_name

|COLUMNcolumn}[,...n]

|{CHECK|NOCHECK}CONSTRAINT

{ALL|constraint_name[,...n]}

|{ENABLE|DISABLE}TRIGGER

{ALL|trigger_name[,...n]}

}

::=

{column_namedata_type}

[[DEFAULTconstant_expression][WITHVALUES]

|[IDENTITY[(seed,increment)[NOTFORREPLICATION]]]

]

[ROWGUIDCOL]

[COLLATE]

[][...n]

::=

[CONSTRAINTconstraint_name]

{[NULL|NOTNULL]

|[{PRIMARYKEY|UNIQUE}

[CLUSTERED|NONCLUSTERED]

[WITHFILLFACTOR=fillfactor]

[ON{filegroup|DEFAULT}]

]

|[[FOREIGNKEY]

REFERENCESref_table[(ref_column)]

[ONDELETE{CASCADE|NOACTION}]

[ONUPDATE{CASCADE|NOACTION}]

[NOTFORREPLICATION]

]

|CHECK[NOTFORREPLICATION]

(logical_expression)

}

::=

[CONSTRAINTconstraint_name]

{[{PRIMARYKEY|UNIQUE}

[CLUSTERED|NONCLUSTERED]

{(column[,...n])}

[WITHFILLFACTOR=fillfactor]

[ON{filegroup|DEFAULT}]

]

|FOREIGNKEY

[(column[,...n])]

REFERENCESref_table[(ref_column[,...n])]

[ONDELETE{CASCADE|NOACTION}]

[ONUPDATE{CASCADE|NOACTION}]

[NOTFORREPLICATION]

|DEFAULTconstant_expression

[FORcolumn][WITHVALUES]

|CHECK[NOTFORREPLICATION]

(search_conditions)

}

可以看到,IDENTITY只是在中,也就是说,我们可以这样使用

AlterTable表名Add字段名IntIDENTITY(1,1)

即,我们可以增加一个字段并指定它为自动编号字段。但是不能更改一个字段为自动编号字段(也或许我没找到方法)。即,假如我们想给表增加自动编号字段,只能使用添加字段的方法,而不能更改一个已有的字段为自动编号字段。

至于假如需要更改自动编号字段计数起始值可以使用DBCC命令:

DBCCCHECKIDENT(表名,RESEED,100)

自动编号字段下一个从101开始计。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联网站建设公司,的支持。


本文标题:SQLServer2000中怎么得到自动编号字段-创新互联
文章链接:http://myzitong.com/article/gepig.html