在 SQL Server CE 中批量插入
Posted
技术标签:
【中文标题】在 SQL Server CE 中批量插入【英文标题】:Bulk Insert In SQL Server CE 【发布时间】:2009-10-08 17:22:39 【问题描述】:我是 SQL Server CE 的新手,使用 Visual Studio 2008、SQL Server CE 3.5。我想知道将批量记录插入 SQL Server CE 数据库的最佳方法是什么? BULK INSERT
语句是否适用于 SQL Server CE?我有近 45 个表,其中一些表应该有大量数据。使用command.Prepare
就够了还是有更高效快捷的方法?
【问题讨论】:
【参考方案1】:SQL CE 没有批量插入命令。为了获得最佳原始性能,使用TableDirect 打开可更新的SqlCeResultset SqlCeCommand 是您最快的选择。它完全绕过了查询处理器,实际上与直接写入文本文件一样快。
【讨论】:
这有点好笑,因为 MSDN 文档声明 TableDirect 只能由 OLEDB 提供商使用。照我说的做,而不是照我做...“TableDirect 仅受用于 OLE DB 的 .NET Framework 数据提供程序支持” 抱歉愚蠢的问题 - 知道这是否是 MS 支持的方案吗?这似乎很有趣,我只是不想陷入MS会回来而不支持if(如果需要的话)的情况。 TableDirect 一直并且一直受到 SQL CE 的正式支持。 MS 已在 MSDN 上发表了有关使用它的文章。【参考方案2】:我已将批量插入代码封装在 NuGet 库中,您可以像今天使用 SqlBulkCopy 一样使用它:http://sqlcebulkcopy.codeplex.com
【讨论】:
Eriks 库的好处是 API 模仿了 Sql2008 中的 API,因此如果您构建不同的提供程序,它会很容易集成。以上是关于在 SQL Server CE 中批量插入的主要内容,如果未能解决你的问题,请参考以下文章
在 SQL Server(C# 客户端)中批量插入大量数据的最快方法是啥