【发布时间】:2010-10-29 09:23:41
【问题描述】:
我需要不断地将数据从 ODBC 数据源合并(更新/删除)到 SQL Server 2008 数据库(行数从 1 行到 100000 行不等)
您会推荐什么作为最有效的方法(使用 .net 3.5):
- 在临时表中使用
SqlBulkCopy,然后使用 Merge 命令以临时表为源调用存储过程。 - 调用具有表值参数的存储过程,其中数据作为参数 (
SqlDbType.Structured) 发送,表参数用作合并命令的来源。 通过表参数发送的数据是否以批量操作发送到服务器?在超过 1000 行的情况下使用它是否可行且高效? - 使用合并命令调用存储过程,该命令使用
OpenRowset批量从 ODBC 源获取数据(使用链接服务器?) - 任何其他方式。
谢谢!
【问题讨论】:
-
我会倾向于一个人,但我会服从其他人。不妨问问你周围的人,看看是否有任何集成服务方面的专业知识。
-
如果您使用临时表,请暂时使用 REAL 表,而不是 #Temp 或 @tabelvar 表。如果发生某些事情(断电、重启等),您不希望部分合并的记录被丢弃。
-
我正在考虑真实与临时表,您的观点很有帮助。
标签: .net sql sql-server sql-server-2008 odbc