【发布时间】:2011-11-05 19:26:03
【问题描述】:
在我的应用程序中,我有大量 (100+) 行需要插入到数据库中。一旦他们被插入到数据库中,我需要插入他们的孩子,这些孩子有一个外键引用回孩子。
我想知道是否有一种方法可以编写一个存储过程来插入所有这些行并将它们的 ID 返回给我的应用程序?
【问题讨论】:
-
这有一种糟糕的计划的味道。为什么这样做,你认为它会更快?只需要一个一个地做——更少的问题恕我直言stackoverflow.com/questions/312003/…
-
@Hogan - 这实际上是一个非常好的优化。单个数据库调用的性能将比 100 高得多。通过网络进行非常成本很高。
-
@Oded - 他仍然需要为每个孩子打电话;将父母和孩子传递给SP并进行100次调用而不是101次不是更好吗?该计划还将减少网络流量——无需将 ID 传递回逻辑层。
-
@Hogan - 你假设错了。它可能会以 2 个电话告终,而第二个电话同时要求所有孩子。
-
@Oded - 在这种情况下,为什么不在第一次通话中将所有孩子与父母一起传递,然后打 1 个电话而不是 2 个电话?就像我说的,难闻的气味。
标签: sql-server-2008 tsql table-valued-parameters