2012-04-04 66 views
5

Iこれは、メッセージを取得し、テーブル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 ServerのC:\ドライブ上のファイルです??

SQL BULK INSERTなどは、常にSQL Serverマシン上のローカルドライブでのみ動作します。 SQL Serverが自分のローカルドライブにアクセスできない

ファイルをSQL ServerのC:\ドライブに配置して、もう一度試す必要があります。

+0

@ FerhadJabiyev:答えてくれてありがとう。あなたが答えるときは、適切なコマンド/リファレンスを含めてください。 – Jayan

+0

@Jayanはい、あなたは本当です。ごめんなさい。私はStackOverflowの新機能です。 –

+1

@ FerhadJabiyev:問題ありません。投稿の回答を保持し、適切な回答をupvote - いくつかの良い質問をしてください。 – Jayan

10

一括インポート・ユーティリティの構文は、ここで説明されて

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引数上の注意

'DATA_FILE'

は、データの完全なパスであると言いますインポートするデータを含むファイル 指定された表またはビュー。 BULK INSERTは、ディスク(ネットワーク、フロッピーディスク、ハードディスクなどを含む)からデータをインポートすることができます。

data_file SQL サーバーが実行されているサーバーからの有効なパスを指定する必要があります。 data_fileがリモートファイルの場合は、 汎用名前付け規則(UNC)名を指定します。 UNC名の形式は \ Systemname \ ShareName \ Path \ FileNameです。たとえば、 \ SystemX \ DiskZ \ Sales \ update.txtです。

+2

これは良い答えです。なぜなら、ネットワークパスを使うことができるからです。必ずしもSQL Serverのローカルマシンである必要はありません。 –

0

私はこれまでにこの問題を抱えていました。ファイルパスを確認するだけでなく、正しいファイル名とファイルタイプを参照しているかどうかを確認する必要があります。これが確かにあなたが元の場所に保存したテキストファイルであり、単語ファイルなどではないことを確認してください。私は.docと.docxでトリップしました。これは私のニューメイクの間違いですが、ねえ、起こることがあります。ファイルタイプを変更し、問題を修正しました。

関連する問題