Không thể mở lỗi tệp dữ liệu máy chủ BCP


7

Có vấn đề khi sử dụng BCP qua xp_cmdshell.

Tôi đã xuất dữ liệu bảng sang một tệp dưới dạng .dat nhưng khi tôi cố gắng nhập tệp vào một bảng mới, tôi gặp lỗi dưới đây. Dịch vụ SQL Server và tài khoản mà tôi đang sử dụng có toàn quyền truy cập vào ổ đĩa đó. Tôi không chắc tại sao tôi vẫn gặp vấn đề.

Error = [Microsoft] [SQL Server Native Client 10.0] Không thể mở tệp dữ liệu máy chủ BCP.

Dưới đây là các kịch bản mà tôi đang chạy.

exec master..xp_cmdshell 'BCP database.dbo.tabel OUT d:\tabledata.dat -T -c' 
exec master..xp_cmdshell 'BCP database.dbo.tabelnew IN d:\tabledata.dat -T -c' 

Bạn đã thử thực hiện các lệnh này trực tiếp từ dòng lệnh thay vì sử dụng xp_cmdshell?
Mike Fal

1
Theo kinh nghiệm của tôi, BCP thường yêu cầu tệp phải cục bộ đến máy chủ đích. Có phải vậy không?
Jon của tất cả các giao dịch

Hãy thử `exec master..xp_cmdshell 'BCP database.dbo.tabel OUT d: \ somefolder \ tabledata.dat -T -c'. Cần làm việc. Lưu ý một số thông tin .
Kin Shah

Câu trả lời:


5

Tôi cũng bị như vậy - bằng cách nào đó, một bản cập nhật Windows hoặc SQL Server đã thay đổi điều gì đó và bản dựng thành công trước đó bắt đầu thất bại. Trong trường hợp của tôi, đó là quyền truy cập vào thư mục chứa các tệp dat bị lỗi. Tôi có thể chạy bcp từ dòng lệnh và nó đã hoạt động nhưng không thành công từ SQL Server. Về cơ bản, Dịch vụ SQL cần truy cập vào thư mục. Để kiểm tra điều này, hãy thử chạy

EXEC master..xp_cmdshell 'DIR <your-dat-folder>'

và nếu điều đó không kiểm tra quyền truy cập của bạn (và cấp khi cần thiết).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.