社区
应用实例
帖子详情
问个问题:SQL Server中一个表的id字段是bigint型的自动编号,结果在程序运行过程中,出现了编号断号的情况,什么原因会导致这种情况发生
yiyilc
2004-12-02 04:17:21
问个问题:SQL Server中一个表的id字段是bigint型的自动编号,结果在程序运行过程中,出现了编号断号的情况,什么原因会导致这种情况发生呢??
前提:没有对这个表进行删除操作。
...全文
199
15
打赏
收藏
问个问题:SQL Server中一个表的id字段是bigint型的自动编号,结果在程序运行过程中,出现了编号断号的情况,什么原因会导致这种情况发生
问个问题:SQL Server中一个表的id字段是bigint型的自动编号,结果在程序运行过程中,出现了编号断号的情况,什么原因会导致这种情况发生呢?? 前提:没有对这个表进行删除操作。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yiyilc
2004-12-03
打赏
举报
回复
谢谢各位!!!结贴了!!!
yiyilc
2004-12-03
打赏
举报
回复
谢谢各位!!!结贴了!!!
yiyilc
2004-12-03
打赏
举报
回复
找到原因了,就是像fycooer(水影) 说的,数据库表里定义的是varchar字段,表单中控制的输入是用maxlength控制的,结果这两种编码方式不一样,一个是用unicode,和汉字的长度不一样!!!郁闷……居然有人用中文当密码,结果超长了,就出错了,记录没添加到表里去,可是id却没了。这样就出现了断号!!!!!!!!!!
vinsonshen
2004-12-03
打赏
举报
回复
断号?
自动编号的表,当你插入一条数据后,接着又把这条数据删除,则下次插入记录时,ID是从之前删除数据的(ID+1)开始的
我想可能你那就是因为这个原因。
yiyilc
2004-12-03
打赏
举报
回复
我看了一下程序,因为我在数据提交的时候,都已经设置了输入数据的最大长度,最大长度都是小于我的表里的长度的,不太可能会出现这种情况:(
yiyilc
2004-12-03
打赏
举报
回复
没有触发器,数据表中记录,比如id增长:1、2、3、4、5、6、7、8、12、13、14、18……,中间出现多次断号现象。谢谢,fycooer(水影),我试试,大家也验证一下。
fycooer
2004-12-02
打赏
举报
回复
如果表带有触发器,如果触发器执行失败,事务回滚,记录添加失败,但是自增ID仍然会增长
fycooer
2004-12-02
打赏
举报
回复
急:什么原因出现自动增长ID不连续的情况?
http://community.csdn.net/Expert/topic/3608/3608513.xml?temp=.7199671
对于varchar 型字段, 当插入语句中字符超长时, 就会出现这种情况。
错误:
服务器: 消息 8152,级别 16,状态 9,行 1
将截断字符串或二进制数据。
语句已终止。
结果: 记录未插入,ID已自动增长。
老天,大家试一试!!!
guanshiyu123
2004-12-02
打赏
举报
回复
是不是多人同时操作一个表啊, 并发的时候可能出现这种断号吧
fycooer
2004-12-02
打赏
举报
回复
数据库中没有记录怎么知道有断号呢?不解
fycooer
2004-12-02
打赏
举报
回复
没遇到过,一般没有删除操作是不会出现断号的。当然,如果说你步长设为2或更大的,是不可能按1,2,3增长的。关注中……
Andy__Huang
2004-12-02
打赏
举报
回复
我沒有遇到過這種情況?你有多少記錄是斷號的?
yiyilc
2004-12-02
打赏
举报
回复
数据库中没有记录!也没有人删除任何记录!
Andy__Huang
2004-12-02
打赏
举报
回复
可能是某些人在新增一條記錄後,又不想新記錄,把最大的id刪除,一下次再新增時,它從刪除id後面的那個id增加。
如果沒有刪除過,id應該是連接起來的
lsxaa
2004-12-02
打赏
举报
回复
查找一下,断的号在库中有记录么???
SQL
Server
中
使用存储
过程
自动
生成
id
环境: window 10
sql
server
2014 概述: 数据库的
id
有很多种方法: 自增
ID
序列(
sql
server
2008 r2
中
没有) 分布式
id
(雪花算法) 基于程序内缓存 基于redis缓存 基于数据库存储
过程
这里展示基于数据库存储
过程
生成
id
,它有如下好处: 将
id
和
表
彻底分离,即使
表
或
字段
不存在也不影响生成。它就相当于,你只要提供两个关键字,就可以拿到
id
了 可以在插入
表
之前知道
id
的具体值(初了自增
id
都有这个有点) 相比于程序内缓存,不用考虑由于多个程序访问数据库造
sql
server
怎么设置
ID
字段
为自增
字段
①打开要设置的数据库
表
,点击要设置的
字段
,比如
id
,这时下方
会
出现
id
的列属性
表
②列属性
中
,通过设置“标识规范”的属性可以设置
字段
自增,将“是标识”的值改为是,即成功设置
id
字段
为自增
字段
③注意! 能够设置
ID
字段
自增的
字段
必须是可自增的,比如int,
bi
gin
t类
型
,而varchar类
型
是不可自增的。 ④设置“是标识”的值是“是”之后,可以看到下面的属性
会
默认写上值 ⑤可以设置标...
如何处理数据库
字段
是
bi
gin
t
型
?
数据库
字段
ID
是
bi
gin
t
型
,在执行某个存储
过程
后,其
中
存储
过程
SQL
是这样的:select
ID
,………… 在程序
中
声明了变量是int
型
,在执行存储
过程
后,以下
情况
是
会
抛出异常的:1、obj.
ID
= dr.IsDBNull(0) ? 0 : dr.GetInt32(0);2、obj.
ID
= (dr["
ID
"]==null)?0:(int)dr["
ID
"];3、obj.I
在
SQL
server
中
设置
表
的
自动
编
号
功能
我们都知道很多的数据库软件都为
表
提供了
自动
编
号
的功能,这对于进行有些
表
的功能是十分有用 的,可以减少很多不必要工作,由于
SQL
server
是我最近才使用的所以,在这个
过程
中
遇到了一些问题,但是经过查找资料和摸索总算是解决了,所以现在将自己的心得写下,希望当你遇到同样问题时,可以快速的解决. 在
SQL
server
中
要实现
自动
可以有两种方式: 1.通过"企业管理器",以窗口形式
sql
server
建
表
时怎么设置
ID
字段
自增
打开要设置的数据库
表
,点击要设置的
字段
,比如
id
,这时下方
会
出现
id
的列属性
表
列属性
中
,通过设置“标识规范”的属性可以设置
字段
自增,从下图上看,“是标识”的值是否,说明
id
还不是自增
字段
能够设置
ID
字段
自增的
字段
必须是可自增的,比如int,
bi
gin
t类
型
,而varchar类
型
是不可自增的。比如查看name的列属性时,可以看到“是标识
应用实例
27,579
社区成员
68,558
社区内容
发帖
与我相关
我的任务
应用实例
MS-SQL Server 应用实例
复制链接
扫一扫
分享
社区描述
MS-SQL Server 应用实例
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章