1

SQL Server インスタンスのローカル ドライブで xp_fileexists コマンドを正常に実行できます。ファイルが存在する場合、出力は 1 になります。ファイルが存在しない場合、出力は 0 です。SQL Server マシンにマップされているネットワーク ドライブで同じコマンドを実行すると、出力は常に 0 になります。

たとえば、「\\10.188.20.5\myfolder\myfile.txt」という URL のファイルがあるとします。私は走るだろう

SET @MYFILE = '\\10.188.20.5\myfolder\myfile.txt'
EXEC MASTER.DBO.XP_FILEEXIST @MYFILE, @MYOUTPUT OUT
PRINT @MYOUTPUT

結果は 0 を返します。

同じ URL で一括挿入コマンドを実行すると、ファイルは正常にインポートされます

BULK INSERT #mytable
FROM '\\10.188.20.5\myfolder\myfile.txt'

ネットワーク ドライブで xp_fileexists が誤動作する原因は何ですか?

4

3 に答える 3

4

問題は、SQL Server の実行に使用される管理者アカウントのパスワードにあることが判明しました。パスワードは変更されましたが、SQL Server は引き続き実行されました。'MASTER.DBO.XP_FILEEXIST' は、パスワードの競合のために機能しませんでしたが、他の SQL Server 関数は機能しました。SQL Server の実行に使用する管理者アカウントに関連付けられたパスワードを変更すると、関数は期待どおりに機能しました。

于 2012-12-19T15:33:51.787 に答える
2

これは、ネットワークにアクセスできないサービスの通常のローカル システムの資格情報に依存します。

于 2012-11-14T15:36:43.493 に答える
-1

>> Sql Server Configuration Manager >> 左側のパネルで SQL Server Services に移動 >> 自分のインスタンス (MyPc\Sqlexpress) を選択し、アカウント名、ユーザー名、パスワードを入力します。

今はうまくいくはずです

于 2015-06-16T13:27:55.737 に答える