gpt4 book ai didi

c# - 插入到 SQL Server 中的父子表中

转载 作者:太空宇宙 更新时间:2023-11-03 22:01:44 25 4
gpt4 key购买 nike

我有多个级别的父子表(GrandParent、Parent 和 Child,都是多对一的关系,一个 parent 有多个 child ,所有 child 都有一个 parent )。每个都有自动身份 key 。使用 C# 和存储过程,如何使用外键约束向它们插入?例如,要插入的数据包括多个祖 parent ,每个毕业生 parent 有多个 parent ,每个 parent 有多个 child 。

示例数据:

campus <- building <- office

添加一些校区和相关建筑物/办公室。

最佳答案

您可以使用 SCOPE_IDENTITY() 函数来检索最后插入的自增 ID:

DECLARE @new_parent_id INT

INSERT INTO MyParent(...) VALUES(...) -- your new parent data

SELECT @new_parent_id = SCOPE_IDENTITY()

INSERT INTO MyChild(parent_id, ...) VALUES(@new_parent_id, ...)

你是这个意思吗?

编辑:

您确实可以使用表值参数通过 ADO.NET 和 SQL Server 2008 一次传递所有数据:

http://msdn.microsoft.com/en-us/library/bb675163.aspx

您可以将父项和子项数据作为两个表传递给存储过程,然后使用游标遍历您的父项,插入一个,获取生成的 ID,然后在继续下一个父项之前插入其所有子项。

这可能是最有效的解决方案,可能只需要对数据库进行一次调用,并且如果您有大量数据要插入,或者如果您认为可以在解决方案的其他地方重用此 SP,那么这可能是要走的路。

但是,我认为从客户端应用程序逐条插入记录是实现您想要的效果的一种更清晰、当然更简单的方法。

关于c# - 插入到 SQL Server 中的父子表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9848535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com