【发布时间】:2014-02-15 23:27:49
【问题描述】:
我正在尝试使用 bulkinsert 一次插入多行。
在要插入的数据中,父子关系由“ParentName”列确定,为nvarchar类型。
但是在数据表中,父子关系是由唯一标识符ParentId决定的。
我应该如何处理这个,所以在插入时,parentId 是孩子父记录的生成 id?
如果我能进一步澄清我的问题,请告诉我。我使用的是 sql server 2005。
【问题讨论】:
-
我会在它之后输出一个子句。 msdn.microsoft.com/en-us/library/ms177564(v=sql.120).aspx先插入所有的父母,并输出parentname和parentid。将子项暂存到 #temp 并使用输出表中的数据插入子项。
-
@Blam,谢谢你的想法。我只是查找了输出子句。这可能是可行的。我现在正在尝试使用它。
-
这是可行的,但它是一些工作。但我不知道另一种方法。你为什么在 2015 年?我会在 2015 年免费使用 SQL 2012 Express。
-
输出子句绝对是要走的路;这就是它的目的。你可以用一个游标和一个排序的 I out set 来做一些缓慢而丑陋的事情,它通过 nvarchar 名称 I 一个子查询来查找父级,但这会很慢并且闻起来不太好。 :-)
-
@Blam,我无法选择 sql svr 版本。这取决于我工作的公司的基础设施部门。只是好奇,以后的版本更容易支持吗?哦,顺便说一句,输出子句真的为我做了!它正在工作,并且插入数千条记录的速度非常快!
标签: mysql sql sql-server tsql database-design