以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 一次性插入多行时如何获取新增行的真正的_identify (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=183087) |
-- 作者:happyft -- 发布时间:2022/10/23 21:07:00 -- 一次性插入多行时如何获取新增行的真正的_identify 在foxtable的窗口的保存按钮中用sql事务执行保存, 如下所示: 1 一次性将多行新增到sql数据库中的采购入库明细表中; insert into 采购入库明细 (入库单号,产品编码,数量,入库日期) select ..... from xxx \'明细表中一次新增多行 2 将采购入库明细新增的行添加到出入库记录表中 insert into 出入库记录表 (进出单号,产品编码,数量,进出日期,行号) select ..... from xxx 我的问题是: 新增行的_identify在foxtable窗口中是临时的,如果在第1项sql语句执行后, 在第2行语句执行时如何能获取1处刚插入的多行的实际的_Identify作为行号新增到出入库记录表中,因为后续修改删除都必须用此行号才能正确识别 帮助中的Select SCOPE_IDENTITY()例子只是在每一次插入一行后返回;没有多行一次性插入的写法 谢谢! |
-- 作者:有点蓝 -- 发布时间:2022/10/23 21:11:00 -- 找能够识别采购入库明细这个表唯一的数据取查和获取_Identify。 比如入库单号是唯一的,就通过入库单号查询获取,如果不是唯一就增加字段比如通过入库单号,产品编码查询 |
-- 作者:HappyFt -- 发布时间:2022/10/23 21:30:00 -- 大概明白了,入库单号是先生成的,已经有明确的值,那意思是第2项的语句就不用从foxtable的界面新增的明细表拼接了,因为第一项 insert into 采购入库明细 (入库单号,产品编码,数量,入库日期) select ..... from xxx \'明细表中一次新增多行 后可以用入库单号直接从sql数据库中查询到此入库单号的所有明细数据,也就是第2项这样用对吧 insert into 出入库记录表 (进出单号,产品编码,数量,进出日期,行号) select 入库单号,产品编码,数量,入库日期,_Identify from 采购入库明细 where 入库单号 = xxxx 但有个疑问,因为上面的语句是用事务全部语句执行完才一起提交的,是不是只要是第一项插入明细表的sql语句在前面,第二项sql语句就可以提取到sql数据库中刚插入的明细数据了, 虽然执行到第二项时事务没正式提交,
|
-- 作者:有点蓝 -- 发布时间:2022/10/23 21:37:00 -- 是的,只要第一条语句先执行,第二条语句就可以获取正确的_Identify值 |
-- 作者:HappyFt -- 发布时间:2022/10/23 21:46:00 -- 好的,谢谢! |