2009-10-08 20 views
5

soy nuevo en SQL Server CE y uso Visual Studio 2008, SQL Server CE 3.5. Quiero saber cuál es la mejor forma de insertar registros masivos en la base de datos SQL Server CE? ¿Funciona la instrucción BULK INSERT para SQL Server CE? Tengo casi 45 tablas y algunas de estas tablas deben tener una gran cantidad de datos. ¿Es suficiente usar command.Prepare o hay una forma más eficiente y rápida?Inserción masiva en SQL Server CE

Respuesta

13

SQL CE no tiene un comando de inserción masiva. Para la mejor apertura de rendimiento en bruto, un SqlCeResultset actualizable usando un TableDirectSqlCeCommand es su apuesta más rápida. Evita por completo el procesador de consultas, y en realidad es tan rápido como escribir directamente en un archivo de texto.

+0

Eso es una especie de divertido, porque aunque la documentación de MSDN afirman que TableDirect se supone sólo para ser utilizado por Proveedores OLEDB. Haga lo que le digo, no como lo hago ... "TableDirect solo es compatible con .NET Framework Data Provider para OLE DB" –

+3

Supongo que me alegra que nunca haya leído los documentos. :) – ctacke

+0

pregunta estúpida triste - alguna idea si este sería un escenario soportado por MS? Esto parece bastante interesante, simplemente no quiero entrar en la situación en la que MS volvería y no admitiría si (si uno lo requiere). – bahree

10

he envuelto el código de inserción masiva en una biblioteca NuGet, que se puede utilizar como se utiliza SqlBulkCopy hoy: http://sqlcebulkcopy.codeplex.com

+0

Lo bueno de la biblioteca de Eriks es que la API imita la que se encuentra en Sql2008, por lo tanto, si construyes diferentes proveedores, sería fácil de integrar. – Daniel

Cuestiones relacionadas