社区
疑难问题
帖子详情
批量插入数据后怎么能得到这些记录的标识列的ID值?
北京的雾霾天
2006-11-24 03:33:45
我的数据表有一个标识列ID, 类型为GUID(uniqueidentifier),默认为值newID(),在这个表中我想一次插入多行数据,那么我怎么能得到刚插入的这些行的ID的值呢?
...全文
179
10
打赏
收藏
批量插入数据后怎么能得到这些记录的标识列的ID值?
我的数据表有一个标识列ID, 类型为GUID(uniqueidentifier),默认为值newID(),在这个表中我想一次插入多行数据,那么我怎么能得到刚插入的这些行的ID的值呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
OracleRoob
2006-11-24
打赏
举报
回复
如果用int型的话,每次取表中已存在的最大值,更新待追加数据的ID,一次性追加即可。
假设:待追加数据的ID分别为1、2、3...,已存在的最大ID为1000,则直接更新加上1000。
处理时使用事务,确保数据处理的一致性和完整性。
北京的雾霾天
2006-11-24
打赏
举报
回复
wangtiecheng(不知不为过,不学就是错!) ( ) 信誉:100 Blog
的说法是我想用的,这个对GUID来说可行.
可是如果这个列的类型要是int是不是就不好做了?
OracleRoob
2006-11-24
打赏
举报
回复
因为Newid()生成的数据是不重复的,所以在哪儿生成都一样,不会出现关键字重复。
OracleRoob
2006-11-24
打赏
举报
回复
把已存在数据的ID放入临时表的方法不太可行,因为数据量会越来越大,应该把需要追加的数据的ID在临时表中生成。
中国风
2006-11-24
打赏
举报
回复
用触发器写入临时表或其它表
OracleRoob
2006-11-24
打赏
举报
回复
将这些需要追加的数据事先在临时表中处理即可。
即在追加到正式表中之前,把ID数据生成,也就是说这种情况下你的正式表中ID默认值是用不上的。
gahade
2006-11-24
打赏
举报
回复
--插入前先找到有哪些id
select id into #t_before from 表
insert语句
--插入后和插入前比较找到新插入的
select * from 表 where id not in (select id into #t_before from 表)
caixia615
2006-11-24
打赏
举报
回复
UP,学习~
xiaoku
2006-11-24
打赏
举报
回复
乌龟说的可以
dawugui
2006-11-24
打赏
举报
回复
插入之前把存在的ID放在一临时表#tb.
插入之后进行比较.
select * from tb where id not in (select id from #tb)
PowerBI系
列
之Power Query专题
获取
数据
数据
源种类介绍和获取Excel
数据
源 输入
数据
和拷贝
数据
:创建辅助表 解析Json/XML
数据
格式 获取Web网页
数据
和URL添加动态参数 连接
数据
的四种模式:Import、DirectQuery、Live Connection、Dual双 属于混合...
SqlServer插入带有
标识
列
字段的
数据
sqlserver
批量插入
记录
时,对有
标识
列
的字段要设置 set
ID
ENTITY_INSERT 表名 on,然后再执行插入
记录
操作;插入完毕后恢复为 off 设置 ; 格式: set
ID
ENTITY_INSERT 表名 on set
ID
ENTITY_INSERT 表名 off 例: set ...
mysql 插入
数据
后返回该条
数据
id
在做关联表插入操作时,需要根据主表的 主键
id
作详情表的属性
值
,最笨的方法就是,先插入主表,然后通过查询返回刚刚插入的 主键
id
,容易出现问题。 解决办法: 在mybatis的配置文件中,用keyProperty和...
SQL Server插入
记录
后获取自动增长
列
的
值
在关系
数据
库中,我们经常会给一个表的主键设置为自增
列
,而在开发过程中,有时又会需要在插入一条
记录
后获得它的主键
值
,我们可以通过创建带有输出参数的存储过程来完成这一任务。在T-SQL中,有三个函数可以用来...
【mysql】
批量插入
数据
(插入
数据
部分来之其他表)
要求:对A表进行批量
数据
插入,部分字段
值
来源于其他表字段插入代码:delimiter $$ create procedure preG() begin declare i int; set i=6001; while i<9000 do -- 关键词 'IGNORE' insert IGNORE ...
疑难问题
22,210
社区成员
121,726
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章