我需要将文件中的数据导入Microsoft SQL Server数据库。
导入数据包含使用新值更新数据库中的现有记录,或者如果找不到记录则插入新记录。
实现这一目标的最佳方法是什么?
(逐行读取文件,从我的.NET应用程序执行SELECT
和UPDATE
或INSERT
并不能真正让我满意,因为这样可以处理大约35条记录每秒,这导致几个小时的处理时间......)
第一个选项可能是在存储过程中组合select和update / insert命令,但这仍然需要很长时间。
有类似MySQL的INSERT ... ON DUPLICATE UPDATE
吗?
是否可以将记录列表/数组(多列)传递给存储过程?
如果是,如何实施?
感谢您的帮助:)
答案 0 :(得分:1)
您应该查看SQL Server BULK INSERT以将文件批量加载到SQL Server中的临时表中。
将数据加载到临时表后,可以使用SQL Server 2008 MERGE语句插入/更新(“upsert”)实际数据表。这正是它旨在解决的情景......
答案 1 :(得分:0)
创建SSIS就是为了做到这一点。 Here就是一个例子。