【发布时间】:2013-12-18 19:19:43
【问题描述】:
我们有一个包含 18,000 个 ID 的 Excel 表。我们的数据库中有一个主表,其中 Excel 表中的这些 Id 可用。
由于它是由许多用户修改的 Excel 表,我们希望验证这 18,000 个 ID,并确保它是数据库中可用的有效 ID。但是我们不想通过一次传递一个 Id 来调用过程并验证 Id。这样,我们必须进行 18,000 次 DB 调用来验证所有 18,000 个 ID,所以我们不需要这样做。
还有其他推荐的方法来实现这一点吗?
我试过这个: 将所有 18,000 个 ID 作为表值参数传递给过程。 使用 SQL 合并概念。 目标表:具有所有 ID 的主表。 源表:表值参数。 条件:ON TargetTable.id = SourceTable.id 当不匹配时 -- 这里我不想更新、删除或插入到我的目标表,因为那是我们的主表,所以我们不希望任何 DML 语句反对该表。但是 SQL Merge 不允许我在这里使用其他表。所以这对我不起作用。
【问题讨论】:
-
首先将 sql server 中的所有数据放在一个临时表中,然后通过(加入/合并)任何适合您的方式过滤掉不需要的行,然后对所有过滤的行进行操作。
标签: c# asp.net sql sql-server sql-server-2008