我的第一个表唯一键是子表中的外键,我使用的是存储过程中的事务,当我使用事务时出现问题然后第一个表被插入的唯一键显示之前没有值提交查询和第二个表的数据插入我需要在第一个表中插入行的唯一键。 我会在where子句中使用select查询。但我的面试官说,告诉我一些其他的方式来实现这一点,他说他不能写100张桌子的“select where”语句。如何在多个表中使用事务插入数据
0
A
回答
3
在这种情况下,您将使用SCOPE_IDENTITY()
函数检索父表中新插入行的标识。您的脚本应如下所示:
begin transaction
declare @parentId int;
insert into ParentTable(Value1, Value2) values('1', '2')
select @parentId = SCOPE_IDENTITY()
insert into ChildTable(ParentId, Value) values(@parentId, '3')
commit
+0
哇,这听起来不错,但是当主键列上的isIdentity设置为false时,我可以使用这个范围标识。 –
+0
,因为对于唯一的主键,我使用自己的逻辑来创建PK不使用标识列 –
+0
@BRBHARDWAJ,如果您使用自定义逻辑创建PK值,那么您不需要'scope_identity()'。只需将'@ parentId'作为参数传递给存储过程即可。 – RePierre
相关问题
- 1. 如何使用数据表在数据库中插入多个表单
- 2. 如何使用SSIS将多个表中的数据插入到多个表中?
- 3. laravel使用DB插入数据:事务
- 4. 如何在mysql中的多个表中插入大量数据
- 5. 使用WCF事务插入到多个表
- 6. 使用JDBC在MyQSL中插入多个数据(列表)
- 7. JSF - 如何在数据库表中插入多个值
- 8. Jpa多对多如何将数据插入到两个表中
- 9. 如何使用php将多行数据插入到mysql表中?
- 10. 插入数据在多个表
- 11. 将数据插入到多个表中
- 12. 将数据插入到多个表中
- 13. 如何保证所有数据在同一事务中被插入到表中?
- 14. 在单个事务中在多个表中保留数据
- 15. 使用Linq插入到多个数据库表中,ASP.NET MVC
- 16. 使用linq将多个数据插入到不同的表中?
- 17. 如何在数据表中插入TD
- 18. 如何在MySQL表中插入数据?
- 19. 如何在Mysqlicous表中插入数据?
- 20. 如何在表格中插入数据
- 21. 休眠时在单个事务中写入多个数据库
- 22. 如何通过ItemWriter将数据插入到多个表中
- 23. 使用两个sql插入事务
- 24. 如何使用循环将多个查询插入到数据库表中?
- 25. 在第一个表中插入数据后,如何将数据从一个表插入另一个表?
- 26. WebSQL:插入多行/事务
- 27. 当插入到多个表中时雄辩的ORM事务?
- 28. 使用Google_Http_Batch插入多个事件
- 29. 如何使用TinyDB将多个表插入表中?
- 30. 在数据库中插入多个值
在过程中使用循环。告诉我你的代码,也许我可以帮你 – starko