Làm cách nào để chỉ định tệp sql đầu vào có truy vấn dài khi sử dụng bcp? Tôi đã thử sử dụng tùy chọn -i
nhưng nó vẫn phàn nàn về lỗi dòng lệnh mà không có thêm thông tin. Điều này có thể không?Tôi có thể chỉ định tệp sql đầu vào với bcp không?
Trả lời
Theo như tôi lo ngại, tiện ích BCP chỉ hỗ trợ các truy vấn Transact-SQL được ghi trực tiếp vào dòng lệnh. Ví dụ:
BCP "SELECT Tên TỪ AdventureWorks.Sales.Currency" queryout Currency.Name.dat -T -c
Theo its reference các "-i" tùy chọn:
Chỉ định tên của tệp phản hồi, chứa câu trả lời cho câu hỏi dấu nhắc lệnh cho mỗi trường dữ liệu khi bản sao số lượng lớn đang được thực hiện bằng chế độ tương tác (-n, -c, -w hoặc -N không được chỉ định).
Chú ý rằng nó khác với các tùy chọn sqlcmd Utility "-i":
Xác định các tập tin có chứa một loạt các câu lệnh SQL hoặc thủ tục lưu trữ. Nhiều tệp có thể được chỉ định sẽ được đọc và xử lý theo thứ tự (...)
+1 Cảm ơn bạn. Bạn có biết phải làm gì khi lệnh 'SELECT' quá dài? – Legend
Tôi không bao giờ phải tự sử dụng các truy vấn dài, nhưng kết quả tìm kiếm nhanh của Google trong liên kết này có thể hữu ích cho bạn: [FIX: Bcp.exe với Chuỗi Truy vấn Dài có thể dẫn đến lỗi xác nhận] (http://support.microsoft) .com/kb/279180) –
Khi tôi đã chạy vào BCP các truy vấn quá dài, chúng tôi đã sử dụng để lưu trữ lượt xem trên nguồn. Truy vấn BCP của chúng tôi có thể chỉ đơn giản là "chọn x, y, z từ [VIEW]" –
Tôi đã gặp sự cố này ngày hôm nay và đã tìm được cách giải quyết thuận tiện, ít nhất trong trường hợp đặc biệt.
Bảng tạm thời có thể được tạo bởi bất kỳ người dùng nào có quyền kết nối. Điều này có nghĩa là bạn cũng có thể tạo các bảng tạm thời GLOBAL.
Chỉ cần chạy truy vấn của bạn trong trình quản lý doanh nghiệp (hoặc sql cmd hoặc bất kỳ thứ gì) bằng cách sử dụng SELECT ... INTO với bảng tạm thời toàn cầu, ví dụ:
SELECT *
INTO ##mytemptable
FROM SomeTable
WHERE [massive where clause, for example]
Sau đó bạn có thể sử dụng bảng tạm thời trong truy vấn BCP với một đơn giản
SELECT * FROM ##mytemptable
Sau đó thả các bảng tạm thời thông qua quản lý doanh nghiệp
DROP TABLE ##mytemptable
Hoặc bao giờ chỉ 'bcp ## mytemptable out' ... – Neil
tôi đã làm cách nào khác cho sửa chữa mà .
Tôi tạo tệp hàng loạt có đọc tệp và gửi nội dung của bạn theo lệnh bcp. Xem:
@ECHO off
SETLOCAL EnableDelayedExpansion
SET queryFile=%1
SET outFileName=%2
FOR /F "delims=" %%i IN (%queryFile%) DO SET join=!join! %%i
ECHO %join%
bcp "%join%" queryout %outFileName% /S.\SQLE_CAESAR /d /c /t"|" /T
kịch bản đó nhận được hai thông số:
- Tên tập tin trong đó có một truy vấn;
- Tên tệp cho dữ liệu xuất;
Thực hiện một kịch bản trong cmd như thế: xuất query.bat query.sql export.txt
Tôi hy vọng giúp đỡ.
- 1. phổ biến pesky "Không có tệp đầu vào nào được chỉ định". với nginx_php-fastcgi
- 2. Sử dụng tiện ích bcp để xuất truy vấn SQL vào một tệp văn bản
- 3. Tôi có thể tìm bcp để tăng ở đâu?
- 4. Sử dụng bcp để nhập tệp csv vào sql 2005 hoặc 2008
- 5. tệp đầu vào chỉ là tệp .xls
- 6. Tôi có thể chỉ định đường dẫn đầu ra cho thẻ MSBuild <Content> không?
- 7. Chúng tôi có thể chỉ định phiên bản tệp khi tạo tệp trong C# không?
- 8. Tôi có thể nhúng biểu tượng vào tệp .hta không?
- 9. Tôi có thể có một trường tệp ở dạng đầu vào không?
- 10. Tôi có thể lấy README.textile vào RDoc của tôi với định dạng thích hợp không?
- 11. Tải tệp hàng loạt vào SQL Azure?
- 12. Tôi có thể chỉ định các loại cột khi tạo chế độ xem SQL Server không?
- 13. firebug: có thể lưu đầu ra vào tệp không?
- 14. Với mod_rewrite tôi có thể chỉ định một RewriteBase trong RewriteCond không?
- 15. Tôi có thể ghi đè jQuery .val() cho chỉ một số yếu tố đầu vào không?
- 16. Tại sao tôi không thể nhấp vào đầu vào?
- 17. Tôi có thể đưa dịch vụ vào chỉ thị không?
- 18. Tôi có thể chỉ định maxlength trong css không?
- 19. Tôi có thể xóa chỉ mục MongoDB mặc định không?
- 20. Tăng BCP không xuất ra bất kỳ tệp nào?
- 21. Bcp có duy trì thứ tự hàng trong khi xuất thành tệp dữ liệu không?
- 22. Có tệp .mocha mà tôi có thể chỉ định các giá trị mặc định như --no-colours không?
- 23. Tôi có thể chỉ định một nhánh cụ thể trên GitHub pull-only (chỉ đọc) không?
- 24. Thuật toán để khớp với một tệp đầu vào với số tệp nhất định
- 25. "Chuỗi đầu vào không đúng định dạng."
- 26. Lỗi SQL - Định nghĩa bảng không chính xác; chỉ có thể có một cột tự động
- 27. Tôi có thể tạo một nút trong neo4j với id được chỉ định không?
- 28. Sybase 15 có hỗ trợ api bcp trong java không?
- 29. Thư mục đầu ra có thể được chỉ định thông qua dòng lệnh không?
- 30. Chúng tôi có thể thêm nhận xét hoặc tệp README vào cơ sở dữ liệu/bảng SQL Server không?
Nhập tệp SQL? Không. Bạn có thể chỉ định tệp dữ liệu và tệp định dạng. Nếu bạn muốn sử dụng SQL, có lẽ chèn số lượng lớn là một lựa chọn tốt hơn. –
@GordonLinoff: Trên thực tế, tôi đang cố gắng lấy dữ liệu từ một bảng. Trước đó, tôi đã làm một SELECT dựa trên một chuỗi và cung cấp nó cho bcp nhưng bây giờ tôi có một truy vấn dài hơn. – Legend
Bạn có thể tạo chế độ xem có truy vấn. –