2010-09-07 13 views
8

Curioso si esto es posible: el servidor de la aplicación y el servidor de db viven en diferentes lugares (obviamente). El servidor de la aplicación genera actualmente un archivo para usar con la inserción masiva del servidor sql.¿Es posible usar la inserción masiva del servidor sql sin un archivo?

Esto requiere que el DB y el servidor de aplicaciones puedan ver la ubicación y dificulta la configuración en diferentes entornos.

Lo que me gustaría saber es: ¿es posible omitir el sistema de archivos en este caso? Tal vez puedo pasar los datos al servidor sql y hacer que genere el archivo?

Estoy en el servidor sql 2008, si eso hace la diferencia.

gracias!

Respuesta

12

No creo que pueda hacer eso con la herramienta bulkcp de SQL Server, pero si su aplicación está escrita usando .NET, puede usar la clase System.Data.SqlClient.SqlBulkCopy para insertar filas a granel desde una tabla de datos (o cualquier fuente de datos a la que pueda acceder con un SqlDataReader).

+3

Quieres decir con un 'IDataReader'. – SLaks

+0

Para agregar a esto: es bastante fácil tener una clase implementando iDataReader leyendo información de una matriz. Si desea almacenar en una base de datos SQL una gran cantidad de información almacenada en una matriz, esa es una buena manera de hacerlo. – supercat

+0

@Slaks, sí, estaba siendo muy específico. – Chris

1

De la documentación de inserción masiva:

BULK INSERT 
    [ database_name. [ schema_name ] . | schema_name. ] [ table_name | view_name ] 
     FROM 'data_file' 

La DE 'data_file' no es opcional y se especifica como tal:

'data_file' es la ruta completa del archivo de datos que contiene datos para importar a la tabla o vista especificada . BULK INSERT puede importar datos de un disco (incluida la red , disquete, disco duro y etc.).

data_file debe especificar una ruta válida desde el servidor en el que se ejecuta el servidor SQL Server . Si data_file es un archivo remoto , especifique el nombre de Universal Naming Convención (UNC). Un nombre UNC tiene el formulario \ Systemname \ ShareName \ Path \ FileName. Por ejemplo, \ SystemX \ DiskZ \ Sales \ update.txt.

Su aplicación podría hacer la inserción directamente utilizando cualquier método que satisfaga sus necesidades de rendimiento.

Cuestiones relacionadas