2012-04-04 21 views
5

Tengo la siguiente consulta para insertar en una tablaSQL de inserción masiva - el archivo no existe

BULK 
    INSERT tblMain 
    FROM 'c:\Type.txt' 
    WITH 
    (
     FIELDTERMINATOR = ',', 
     ROWTERMINATOR = '\n' 
    ) 
    GO 

Se recibió el mensaje

Msg 4860, nivel 16, estado 1, línea 1
No se puede cargar de forma masiva. El archivo "c: \ Type.txt" no existe.

El archivo está claramente allí. ¿Algo que pueda estar pasando por alto?

+0

posible duplicado de [sql import a sql server 2008] (http://stackoverflow.com/questions/10016427/sql-import-into-sql-server-2008) –

+0

¿Está utilizando MS SQL Server? ¿Estás ejecutando SSMS para ejecutar la consulta? – Icarus

+0

Es el archivo ** en la unidad C del dispositivo SQL Server: ** ?? ¿O en tu PC local? La máquina de SQL Server (suponiendo que es una máquina remota, no tu propia PC) ** no puede ** leer tu propia unidad 'C: \' local. (¡por suerte!) –

Respuesta

21

vistazo a eso: Cannot bulk load. The file "c:\data.txt" does not exist

Es ese archivo en la unidad de la SQL Server C:\ ??

SQL BULK INSERT etc. siempre funciona solo con la unidad local en la máquina de SQL Server. Su SQL Server no puede alcanzar su propia unidad local.

Debe colocar el archivo en la unidad C: \ de SQL Server y volver a intentarlo.

+0

@ FerhadJabiyev: Gracias por responder. Por favor incluya los comandos/referencias apropiados cuando responda. – Jayan

+0

@Jayan Sí, eres cierto. Lo siento. Soy nuevo en StackOverflow. –

+1

@ FerhadJabiyev: No hay problema. Siga publicando respuestas, repita las respuestas adecuadas, haga también algunas buenas preguntas. – Jayan

10

sintaxis de utilidad de importación a granel se describe aquí

http://msdn.microsoft.com/en-us/library/ms188365.aspx

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

Nota sobre data_file argumento dice

'data_file'

Es la ruta completa de los datos archivo que contiene datos para importar a la tabla o vista especificada. BULK INSERT puede importar datos desde un disco (incluyendo red, disquete, disco duro, etc.).

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

+2

Esta es una buena respuesta, ya que incluye el hecho de que puede usar una ruta de red. No necesariamente tiene que ser la máquina local de SQL Server. –

0

He tenido este problema antes. Además de verificar la ruta del archivo, querrá asegurarse de que está haciendo referencia al nombre y tipo de archivo correctos. Asegúrese de que este sea realmente un archivo de texto que haya guardado en la ubicación de origen y no un archivo de palabras, etc. Me tropecé con .doc y .docx. Este es un nuevo error mío, pero bueno, puede suceder. Cambió el tipo de archivo y solucionó el problema.

Cuestiones relacionadas