在向主表添加一条记录时,想先获取该记录的唯一ID,因为需要先完成其他相关表数据的添加,主表ID用什么方式获取比较好呢

ahking 2013-07-08 06:17:04
在向主表添加一条记录时,想先获取该记录的唯一ID,因为需要先完成其他相关表数据的添加,主表ID用什么方式获取比较好呢?
...全文
209 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
零点逸族 2013-07-11
  • 打赏
  • 举报
回复
不设自增长,不用Guid,那就要你自己管理这个ID的生成嘛,还能有什么办法呢? 自己管理ID的生成,你必须得有个地方记录当前最大的ID是多少,每次插入前要获取这个最大的ID + 1,执行成功之后还要把新的最大ID更新回去。
天下如山 2013-07-11
  • 打赏
  • 举报
回复
guid蛮好.
coobai 2013-07-11
  • 打赏
  • 举报
回复
是否可以放在一个事务中。 BeginTransaction insert into tb output inserted.ID values(.....);select @@IDENTITY --执行得到ID 得到ID后的处理,。 EndTransaction
lin11211408 2013-07-11
  • 打赏
  • 举报
回复
id设置为自增长,添加记录前获取最大id然后加1
-烟花雨季 2013-07-11
  • 打赏
  • 举报
回复
Perfor per = new Perfor(); per.PerforId = Guid.NewGuid(); //新增方法 User user = new User(); user.userId = Guid.NewGuid(); user.perId = per.PerforId;//关联id //新增方法 这样不就ok了?
jmx123456789 2013-07-11
  • 打赏
  • 举报
回复

--SQLSERVER
insert into tb output inserted.ID values(.....)
--inserted.ID 返回的ID 前台接收就可以了
ahking 2013-07-11
  • 打赏
  • 举报
回复
我之前用的是guid,不知大家有什么更好的解决方案
insus 2013-07-11
  • 打赏
  • 举报
回复
记录都没有添加,何来的ID?
tptptp00 2013-07-11
  • 打赏
  • 举报
回复
主键不设置为自动增长,自己设置
ahking 2013-07-11
  • 打赏
  • 举报
回复
引用 1 楼 yumenjianke 的回复:
最简单的是设置ID为自增长。获取的时候使用SCOPE_IDENTITY()
因为需要在向主表提交数据前获取可能的ID号,这个方法不适用啊
E次奥 2013-07-11
  • 打赏
  • 举报
回复
LZ的思路有问题,你应该先添加,然后获得最后一条记录ID(就是刚才添加的),根据获得Id修改(就是其他操作)
dengchenlu 2013-07-11
  • 打赏
  • 举报
回复
INSERT INTO table(column1) VALUES(value1);SELECT @@IDENTITY;
饕餮123 2013-07-08
  • 打赏
  • 举报
回复
select @@IDENTITY
零点逸族 2013-07-08
  • 打赏
  • 举报
回复
最简单的是设置ID为自增长。获取的时候使用SCOPE_IDENTITY()

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧