1
我有一臺SQL Server 2008在遠程機器上運行。讓我們說這臺機器被稱爲XYZ。以下作品:如何授予運行BULK INSERT的權限?
- 遠程桌面到XYZ
- 打開SSMS,然後連接到SQL Server上的XYZ 運行
運行以下命令:
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通過執行以下操作:
- 遠程桌面到XYZ
- 打開SSMS,然後連接到SQL Server上的ABC運行
- 運行上面的腳本
我得到以下錯誤:
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
時也會出現同樣的錯誤。
有什麼建議嗎?
我把它存在ABC文件系統上的文件? – Blorgbeard
我對SQL Server生態系統有點新,所以我想這是我的誤解。因此,當我將RDP轉換爲XYZ,然後對ABC執行查詢時,它是否會查找遠程文件系統上的文件?有沒有辦法讓它在本地文件系統上查找文件? – Legend
是的,SQL Server查找它運行的計算機上的文件 - 無論客戶端從哪裏連接。 – Blorgbeard