1

リモート マシンで SQL Server 2008 を実行しています。マシンが XYZ と呼ばれているとしましょう。以下の作品:

  1. XYZ へのリモート デスクトップ
  2. SSMS を開き、XYZ で実行されている SQL Server に接続します。
  3. 以下を実行します。

    USE SampleDB
    GO
    
    CREATE TABLE [dbo].[SampleData](
        [ColA] [varchar](50) NULL,
        [ColB] [varchar](500) NULL
    ) ON [PRIMARY]
    
    GO
    
    BULK INSERT [dbo].[SampleData]
    FROM "H:\Scratch\OUTPUT_Sample"
    WITH
    (
        FIELDTERMINATOR = '$',
        ROWTERMINATOR = '\n',
        FIRSTROW = 2
    )
    GO
    

これは完全に正常に動作します。ここで、次のようにして別の SQL Server ABC に接続します。

  1. XYZ へのリモート デスクトップ
  2. SSMS を開き、ABC で実行されている SQL Server に接続します。
  3. 上記のスクリプトを実行します

次のエラーが表示されます。

Msg 4861, Level 16, State 1, Line 2
Cannot bulk load because the file "H:\Scratch\OUTPUT_Scratch" could not be opened. Operating system error code 3(The system cannot find the path specified.).

誰かがこの問題を解決する方法を教えてもらえますか? 一部のアカウントにいくつかのアクセス許可を与える必要があると思いますが、これを見つける方法も、そのアカウントに与えるアクセス許可もわかりません。使用しても同じエラーが発生sqlcmd.exeします。

助言がありますか?

4

1 に答える 1

7

ここで答えを見つけたようです。要約すると、ファイルが機能するには、ファイルが SQL Server と同じマシン上にある必要があるようです。ローカル ファイルを検索するには、UNC 共有などを介して行う必要があります。

于 2012-06-12T04:46:31.130 に答える