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 回答