关于数据库表字段自增长的问题

关于数据库表字段自增长的问题,第1张

你好自增ID呢 是会在你使用插入或者修改语句的时候进行递增+1的,打个比方 如果你的插入语句写错了插入数据不成功,但是数据库的id还是会+1,想要避免或者重新添加ID为73的数据可以打开表设计 把他的自动增长先设为否,然后 insert into 手动插一条id为73的数据进入 插入好之后再把字段增长给调回来

dbcc checkident ('table_name', reseed, new_reseed_value) 当前值设置为 new_reseed_value。如果自创建表后没有将行插入该表,则在执行 DBCC CHECKIDENT 后插入的第一行将使用 new_reseed_value 作为标识。否则,下一个插入的行将使用 new_reseed_value + 1。如果 new_reseed_value 的值小于标识列中的最大值,以后引用该表时将产生 2627 号错误信息。

方法二不会清空已有数据, *** 作比较灵活,不仅可以将自增值归零,也适用于删除大量连续行后,重新设置自增值并插入新的数据;或从新的值开始,当然不能和已有的冲突。

当表中有了一下数据后

执行语句 DBCC CHECKIDENT ('dboPerson', RESEED, 10) 后再通过Management Studio添加数据时,ID就会自动从11开始,也就是new_reseed_value+1开始

进入设计表界面

首先将该字段的数据类型选成数值型的,比如decimal或者bigint

然后在下面列的标识处,选择“是”

然后下面两行,标识种子:表示自动增长的起点是几,默认1

标识增量:表示每次自增的时候跨度是多少,默认每次自增1

先在控制面板中的管理工具中的ODBC中建立一个ODBC链接。然后再打开ACCESS中的外部资料,链接上你刚建立的ODBC链接。过程中你得知道SQL SERVER的账号sa的密码,否则你无法执行。ACCESS把ODBC中所有的表链接上以后,此表保存于SQL数据库中,但ACCESS可以直接使用,如链接后表名字前有DBO的字样,造成你的窗体无法使用,则你可以把表名字的DBO直接删掉就可以使用了。

很多时候我们需要重置某个表的自增列,让自增列重新从1开始记数。最蠢的方法当然是把该表删掉再重新建表了。其实,还有其它的方法可以重置自增列的值:

方法一:使用TRUNCATE

TABLE语句:

TRUNCATE

TABLE删除表中的所有行,而不记录单个行删除 *** 作,同时重置自增列。TRUNCATE

TABLE

在功能上与没有WHERE子句的DELETE语句相同;但是,TRUNCATE

TABLE

速度更快,使用的系统资源和事务日志资源更少。

方法二:使用DBCC

CHECKIDENT语句:

DBCC

CHECKIDENT在

SQL

Server

2008

R2

中检查指定表的当前标识值,如有必要,则更改标识值。还可以使用

DBCC

CHECKIDENT

为标识列手动设置新的当前标识值。

语法:

DBCC

CHECKIDENT

(

table_name

[,

{

NORESEED

|

{

RESEED

[,new_reseed_value

]

}

}

]

)

[

WITH

NO_INFOMSGS

]

参数:

table_name:是要对其当前标识值进行检查的表名。指定的表必须包含标识列。表名必须符合标识符规则。

NORESEED:指定不应更改当前标识值。

RESEED:指定应该更改当前标识值。

new_reseed_value:用作标识列的当前值的新值。

WITH

NO_INFOMSGS:取消显示所有信息性消息。

示例:我们要重置表t1的当前标识值为1,sql如下:

dbcc

checkident('t1',reseed,1)

alter table 表名 change 字段名 新字段名 新字段类型 auto_increment;

例子:

alter table student change sno sno int auto_increment;

字段名不变,则新字段名不变,但不可省,新字段类型也是

使用这个命令,要保证字段是主键,只有主键才可设置自动增长属性

可以设置每次增长多少的,不一定是连续的,但一定要有规律。

bigint

-2^63 (-9,223,372,036,854,775,808) 到dao 2^63-1 (9,223,372,036,854,775,807)

8 字节

int-2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647)

4 字节

smallint-2^15 (-32,768) 到 2^15-1 (32,767)

2 字节

tinyint0 到 255

扩展资料:

当访问DataTable对象时,请注意它们是按条件区分大小写的。例如,如果一个DataTable被命名为“mydatatable”,另一个被命名为“Mydatatable”,则用于搜索其中一个表的字符串被认为是区分大小写的。但是,如果“mydatatable”存在而“Mydatatable”不存在,则认为该搜索字符串不区分大小写。

一个DataSet可以包含数个DataTable对象,它们具有相同的TableName属性值和不同的Namespace属性值。有关使用DataTable对象的更多信息。

参考资料来源:百度百科-数据表

以上就是关于关于数据库表字段自增长的问题全部的内容,包括:关于数据库表字段自增长的问题、数据库表ID怎么设置自动增长、请问怎样在前台实现数据库的自增等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9305613.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存