我在客户端有一个 CSV 文件,我想开发一个 C# 应用程序来将数据批量插入到数据库的表中,以尽量减少日志输出。我对是否在客户端使用 ADO.NET 调用数据库服务器中的存储过程感到困惑。什么样的代码需要在客户端开发,什么样的代码需要在服务器端以存储过程的形式实现?
但我没有从谷歌找到任何样本。有哪些现成可用的样品? :-)
编辑:更多信息:
我在客户端有很多数据,我想导入到数据库,但我不想要所有许多事务日志的开销。出于安全原因,我想在服务器端开发一个存储过程并从客户端调用(ADO.NET)。我想知道如何实现这样的目标。服务器端的存储过程需要开发什么样的T-SQL,客户端如何高效地调用/填充数据?
如果还有什么不清楚的地方,请随时告诉我。
你可以挂钩CSV阅读器 http://www.codeproject.com/KB/database/CsvReader.aspx到 SqlBulkCopy,它很好地完成了这项工作......类似于(未经测试):
using (CsvReader reader = new CsvReader(path))
using (SqlBulkCopy bcp = new SqlBulkCopy(CONNECTION_STRING))
{
bcp.DestinationTableName = "SomeTable";
bcp.WriteToServer(reader);
}
edit您通常会批量插入到staging表,然后使用常规存储过程将数据移入real table.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)