web-dev-qa-db-ja.com

一括読み込みできません。ファイル「c:\ data.txt」は存在しません

テキストファイルからms sqlへのデータの読み取りに問題があります。 c:\にdata.txtというテキストファイルを作成しましたが、何らかの理由でms sqlサーバーがファイルを見つけることができません。 「一括読み込みできません。ファイル "c:\ data.txt"は存在しません。」というエラーが表示されます。何か案は?

データファイル(はい、私はデータが安っぽく見えることを知っていますが、現実の世界ではクライアントからのデータです):

01-04 10.338,18 0,00 597.877,06- 5 0,7500 62,278-
06-04 91.773,00 9.949,83 679.700,23- 1 0,7500 14,160-
07-04 60.648,40 149.239,36 591.109,27- 1 0,7500 12,314-
08-04 220.173,70 213.804,37 597.478,60- 1 0,7500 12,447-
09-04 986.071,39 0,00 1.583.549,99- 3 0,7500 98,971-
12-04 836.049,00 1.325.234,79 1.094.364,20- 1 0,7500 22,799-
13-04 38.000,00 503.010,49 629.353,71- 1 0,7500 13,111-
14-04 286.400,00 840.126,50 75.627,21- 1 0,7500 1,575-

Sql:

CREATE TABLE #temp
(
    vchCol1 VARCHAR (50),
    vchCol2 VARCHAR (50),
    vchCol3 VARCHAR (50),
    vchCol4 VARCHAR (50),
    vchCol5 VARCHAR (50),
    vchCol6 VARCHAR (50),
    vchCol7 VARCHAR (50)
)

BULK insert #temp
FROM 'c:\data.txt'
WITH
(
FIELDTERMINATOR = ' ',
ROWTERMINATOR = '\n'
)

select * from #temp
drop table #temp
20
Daniel Brink

これはサーバーで実行されるため、サーバーのC:\data.txtドライブでC:を探します。

また、使用しているログオンにC:の読み取り権限があることを確認してください。

39
Alex K.

そのファイルはSQL ServerのC:\ドライブにありますか? SQL BULK INSERTなどは常に機能しますのみ SQL Serverマシンのローカルドライブで。 SQL Serverが自分のローカルドライブにアクセスできません。

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

更新: @ bp_、OK、正しい-ファイルは、SQL Serverからアクセスできる共有に共有することができますUNCパスを使用するマシン。ただし、この共有は最初に作成する必要があり、SQL Serverプロセスを実行しているユーザーには、その共有へのアクセス許可が必要です。最初にかなりのインフラストラクチャオーバーヘッドを設定せずに、単にPCのローカルドライブからファイルを取得することはできません。

10
marc_s

これは主に許可の問題です。そのドライブに対する権限がない可能性があります。使用しているログオンに読み取り、または可能であればフルコントロールの権限があることを確認してください。ローカルマシンで動作しました。

0
Abde