|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
数据库技术
→
『 VFP论坛 』
→ 多人向sqlserver远程输入数据,避免id最大值重复问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1814
人关注过本帖
标题:
多人向sqlserver远程输入数据,避免id最大值重复问题
只看楼主
加入收藏
ljlbxhlc
等 级:
论坛游民
帖 子:124
专家分:20
注 册:2013-9-24
结帖率:
25.71%
楼主
收藏
已结贴
√
问题点数:10 回复次数:8
多人向sqlserver远程输入数据,避免id最大值重复问题
一个软件是多人同时操作一个远程sql数据表,表的id字段是序号!我用一下命令处理,但是有id重复的情况,往大侠帮助!!!
Insert into 表(id) select isnll(max(id),0)+1 from 表
多人输入id会有重复,该如何解决?
搜索更多相关主题的帖子:
远程
sqlserver
输入
重复
最大值
2021-04-28 11:00
举报帖子
使用道具
赠送鲜花
厨师王德榜
等 级:
贵宾
威 望:
199
帖 子:989
专家分:4966
注 册:2013-2-16
第
2
楼
收藏
得分:2
在服务器端,把id列设置为“自增长”字段。一般主键最好不带任何业务逻辑。
2021-04-29 09:21
举报帖子
使用道具
赠送鲜花
radiofan
等 级:
贵宾
威 望:
11
帖 子:466
专家分:696
注 册:2006-7-30
第
3
楼
收藏
得分:2
回复 楼主 ljlbxhlc
图片附件: 游客没有浏览图片的权限,请
登录
或
注册
2021-04-29 11:09
举报帖子
使用道具
赠送鲜花
ljlbxhlc
等 级:
论坛游民
帖 子:124
专家分:20
注 册:2013-9-24
第
4
楼
收藏
得分:0
谢谢,各位,可是我的这个字段id生成的同时还有其他用处,
我用from 表 with (holdlock) 行不?
这样在一个人进行插入的时候其实人就不能插入了!
可是,这样的话。。第二个插入失败后会怎么样?会继续等待再次插入,
还是提示插入失败,结束呢?
2021-04-29 13:45
举报帖子
使用道具
赠送鲜花
radiofan
等 级:
贵宾
威 望:
11
帖 子:466
专家分:696
注 册:2006-7-30
第
5
楼
收藏
得分:0
以下是引用
ljlbxhlc
在2021-4-29 13:45:57的发言:
谢谢,各位,可是我的这个字段id生成的同时还有其他用处,
我用from 表 with (holdlock) 行不?
这样在一个人进行插入的时候其实人就不能插入了!
可是,这样的话。。第二个插入失败后会怎么样?会继续等待再次插入,
还是提示插入失败,结束呢?
如果一定要这样的话,就给出提示,记录正在被处理,其他人等处理完了再处理呗 !
2021-04-29 13:57
举报帖子
使用道具
赠送鲜花
laowan001
等 级:
版主
威 望:
66
帖 子:1089
专家分:2682
注 册:2015-12-30
第
6
楼
收藏
得分:2
自增长的字段不需要也不能赋值,可以用事务处理,保证存储的完整。
也可以先插入记录,获得插入记录的id,然后用update更新其他字段
2021-04-30 08:28
举报帖子
使用道具
赠送鲜花
吹水佬
等 级:
版主
威 望:
451
帖 子:10607
专家分:43186
注 册:2014-5-20
第
7
楼
收藏
得分:2
关键是各人在计算出这个ID时的同步问题,读取MAX(ID)都有可能是同一个ID
如果有读记录时自动锁处理就没问题,否则就要主动锁定/解锁记录
2021-04-30 10:43
举报帖子
使用道具
赠送鲜花
sash
等 级:
业余侠客
威 望:
6
帖 子:65
专家分:249
注 册:2014-4-25
第
8
楼
收藏
得分:2
楼主你好,要实现你的要求,最好的办法就是使用自增量字段来解决问题。因为根据你的要求是:这个ID必须是唯一的,顺序的,这个由数据库系统自动生成和维护是最好的方法。至于这个ID还需要有其它用处,你可以等它生成后再利用。
2021-05-03 10:52
举报帖子
使用道具
赠送鲜花
ljlbxhlc
等 级:
论坛游民
帖 子:124
专家分:20
注 册:2013-9-24
第
9
楼
收藏
得分:0
回复 7楼 吹水佬
你好,您说的是我想的,可我对数据锁不太了解。。想请教。。。
Insert
into 表 (id)
select max(id)+1
from 表 with ( holdlock)
这个语句会产生什么样的效果,是不是在可以加锁。。。
如何是用不用解锁。。另外,在别人也同时用此语句插入记录时会不会插不进去呢?
请教。。。。谢谢
2021-05-04 15:12
举报帖子
使用道具
赠送鲜花
9
1/1页
1
快速回复:
多人向sqlserver远程输入数据,避免id最大值重复问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.019024 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved