我正在用vb.NET编写一个应用程序,我正在寻找从SQL表导入大量数据的最有效方法。 我在Excel中有大约10k行,我必须将每个行与特定的SQL表行(大约100k记录)相匹配。在每一行中有三列,它们一起标识特定的行。我的意思是2行不可能在所有3列中具有相同的值,我想将它们用作匹配的键。我想知道最有效的技术是什么,因为我认为像'选择...其中[3个条件]'大约10k次这样的声明可能会大大减慢我的应用程序。 感谢您的任何建议
答案 0 :(得分:0)
假设从.net应用程序中调用10次选择将花费过多时间,这是正确的。
更快,更有效的选择是使用SQL Server提供的工具导入或使用SqlBulkCopy以编程方式将数据导入SQL数据库中的表。
在数据库中,您可以编写SQL语句来执行满足您需求的必要数据操作:
INSERT INTO [DBO].TableName([DestColumm0, DestColumn1,...])
SELECT [SrcColumn1,SourceColum2...] FROM DBO.[ImportTable]
WHERE
SourceColumX = ConditionA AND
SourceColumY = ConditionB AND
SourceColumZ = ConditionC
注意: [DestColumm0,DestColumn1,...] 和 [SrcColumn1,SourceColum2 ...] 是目标和源列名称的占位符。