2012-04-04 3 views
5

나는 그것은 메시지가 테이블SQL을 대량 삽입 - 파일이 존재하지 않습니다

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

에 삽입하려면 다음 쿼리를

메시지 4860, 수준 16, 상태 1, 줄 1
대량로드 할 수 없습니다. "c : \ Type.txt"파일이 없습니다.

파일이 있습니다. 내가 간과 할 수있는 건 없니? 그 순간

+0

가능한 [SQL Server 2008로 SQL 가져 오기] (http://stackoverflow.com/questions/10016427/sql-import-into-sql-server-2008) –

+0

MS SQL Server를 사용하고 있습니까? SSMS를 실행하여 쿼리를 실행합니까? – Icarus

+0

파일 **이 SQL Server 시스템의 드라이브 C : **에 있습니까? 아니면 로컬 PC에서? SQL Server 머신 (자신의 PC가 아닌 원격 머신이라고 가정)은 ** 자신의 로컬 'C : \'드라이브를 읽을 수 없습니다! (고맙게도 !!) –

답변

21

봐 : Cannot bulk load. The file "c:\data.txt" does not exist

는 SQL 서버의 C:\ 드라이브에 해당 파일인가?

SQL BULK INSERT 등은 항상 SQL Server 컴퓨터의 로컬 드라이브에서만 작동합니다. SQL Server가 자신의 로컬 드라이브에 연결할 수 없습니다.

파일을 SQL Server의 C : \ 드라이브에 넣고 다시 시도해야합니다.

+0

@ FerhadJabiyev : 답변 해 주셔서 감사합니다. 대답 할 때 적절한 명령/참조를 포함하십시오. – Jayan

+0

@ Jayan 네, 맞습니다. 죄송합니다. 나는 StackOverflow에서 새롭다. –

+1

@ FerhadJabiyev : 문제 없습니다. 답변을 게시하고 적절한 대답을 줄이면서 좋은 질문을하십시오. – Jayan

10

대량 가져 오기 유틸리티 구문은 data_file에 인수 여기에

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 
>  (

참고 설명 말한다

'data_file에'

는 데이터의 전체 경로입니다 가져올 데이터가 들어있는 파일 지정된 테이블 또는 뷰. BULK INSERT는 디스크, 네트워크, 플로피 디스크, 하드 디스크 등을 포함하여 의 데이터를 가져올 수 있습니다.

data_file은 SQL 서버가 실행중인 서버의 유효한 경로를 지정해야합니다. data_file이 원격 파일 인 경우 UNC (Universal Naming Convention) 이름을 지정하십시오. UNC 이름은 \ Systemname \ ShareName \ Path \ FileName 형식입니다. 예 : \ SystemX \ DiskZ \ Sales \ update.txt.

+2

네트워크 경로를 사용할 수 있기 때문에 좋은 대답입니다. 반드시 SQL Server의 로컬 컴퓨터 일 필요는 없습니다. –

0

이전에이 문제가있었습니다. 파일 경로를 확인하는 것 외에도 올바른 파일 이름과 파일 형식을 참조하는지 확인해야합니다. 이것이 실제로 원본 위치에 저장 한 텍스트 파일인지, 단어 파일이 아닌지 확인하십시오. 나는 .doc 및 .docx로 넘어갔습니다. 이것은 내 새의 실수이지만, 어쩌면 일어날 수 있습니다. 파일 형식이 변경되어 문제가 해결되었습니다.