2013-06-11 57 views
8

Đây là kịch bản đơn giản của tôi:sqlcmd dấu không gian trong tập tin đầu ra

Tôi có một bảng trong SQL Server 2005 với cột duy nhất của loại varchar(500). Dữ liệu trong cột luôn có độ dài 350 ký tự.

Khi tôi chạy một lựa chọn trên trình chỉnh sửa truy vấn SSMS, sao chép & dán tập hợp kết quả vào tệp văn bản, độ dài dòng trong tệp là 350, phù hợp với độ dài dữ liệu thực tế.

Nhưng khi tôi sử dụng sqlcmd với tham số -o, tệp kết quả có chiều dài dòng 500, phù hợp với độ dài tối đa là varchar(500).

Vì vậy, câu hỏi là, không sử dụng bất kỳ chức năng chuỗi nào trong select, có cách nào để cho phép sqlcmd không biết xử lý nó như char(500) không?

Trả lời

13

Bạn có thể sử dụng tùy chọn định dạng sqlcmd định dạng -W để xóa dấu cách khỏi tệp đầu ra.

Đọc thêm tại số MSDN article này.

+0

Tôi chắc chắn có điều gì đó kỳ quặc về những gì tôi thực sự muốn, bởi vì tại thời điểm đó tôi đã thử -W và nó đã không giúp đỡ. Hoặc tôi đã làm điều gì đó sai hoặc quên những gì tôi cần chính xác, nhưng câu trả lời của bạn không giải quyết những gì tôi đã yêu cầu trong bài viết. Cảm ơn. – Brian

+0

Nghĩ rằng tôi đã phát điên lên đến mức tôi đã tìm thấy điều này! – Adam

0

-W chỉ hoạt động với kích thước mặc định là 256 cho cột có kích thước thay đổi. Nếu bạn muốn nhiều hơn bạn đã sử dụng -y modifier mà sẽ cho bạn biết nó loại trừ lẫn nhau với -W. Về cơ bản bạn đang trong số may mắn và như trong tập hồ sơ của tôi tăng từ 0.5M lên 172M. Bạn phải sử dụng các cách khác để loại bỏ không gian tệp bài đăng trắng. Một số lệnh PowerShell hoặc một cái gì đó.

+0

arrrrgghhhhh ... – Adam