多条记录插入时,怎么获得这几条记录的自增ID?//不要触发器

ttyp 2003-11-21 09:22:39
注意并发
...全文
39 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ttyp 2003-11-21
  • 打赏
  • 举报
回复
数据不能标识的,如果能用触发器就好了,就是触发器里的inserted里的内容
sosinoe 2003-11-21
  • 打赏
  • 举报
回复
不知你是不是这个意思,我做过一个类似的东西

我有一组数据(放在临时表里,有自建ID标识),要分别插入三个表,下一个表记上一个表的ID
1,wwww,2233,aaa,3231
2,wwww,2233,aaa,3232
3,wwww,2234,aac,3233
4,wwww,2234,aac,3234
......
我先按第二个字段排序插第一个表生成一条记录(33为自增ID)
ID  COL1
33 wwww
用@@identity拿到33
再按第三个字段排序插第二个表(45为自增ID,这两条也可以先放在零时表)
ID PID COL1 COL2
45 33 2233 aaa
46 33 2234 aac
二表再连接前面的总临时表插第三个表(当然二表中要有能标识自己的字段,象COL1)
ID PID COL1
55 45 3231
56 45 3232
57 46 3233
58 46 3234
就是记录的生成有顺序,二表的ID要在三表里记录,解决起来要么用循环,二表每产生一条记录,拿到他的ID生成三表的相关记录,再回到二表,.....
如果数据能标识,就可以用上面的方法,不用循环
我说的不知你能明白
sunshareforever 2003-11-21
  • 打赏
  • 举报
回复
@@identity
ttyp 2003-11-21
  • 打赏
  • 举报
回复
很多模块向一个表里插入数据,需要知道哪些是自己这个模块插入的,是哪个步骤插入的,如不行的话只能做一个循环了
sosinoe 2003-11-21
  • 打赏
  • 举报
回复
一般情况下都是用@@identity来获得自增ID,你一次更新多条,要ID要干什么具体的事,
只能从你的业务来理解你想干什么,你最好说具体点.

ttyp 2003-11-21
  • 打赏
  • 举报
回复
多个啊,用上面还不如select ident_current('表')
伍子V5 2003-11-21
  • 打赏
  • 举报
回复
select @@identity

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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