Tôi cần BCP một bảng thành tệp được phân tách bằng tab, nhưng tôi cần tên cột trong bản ghi đầu tiên của bảng. Câu hỏi 1: Tôi có đúng là BCP không có công tắc cho việc này không? Câu hỏi 2: Nếu không, tại sao?Lấy tên cột có truy vấn BCP
Tôi cố gắng để làm như sau:
BCP "declare @colnames varchar(max); select @colnames=coalesce (@colnames+char(9), '')
+ Column_Name from db.information_Schema.columns where table_name='table1' order by
ordinal_position; select @colnames" queryout Table1_Columns.tsv -S?? -U?? -P?? -f** -e**
Các tập tin định dạng trông như thế này:
9.0
1
1 SQLCHAR 0 100 "\r\n" 1 Column_Names SQL_Latin1_General_CP1_CI_AS
này được tôi một tập tin của các tên cột, sau đó một lệnh BCP thứ hai được cho tôi một tập tin dữ liệu, và tôi chỉ DOS-sao chép hai với nhau. Câu hỏi 3: Tôi có thông minh hay không? Câu hỏi 4: Tại sao nó không hoạt động? Tôi nhận được lỗi:
SQLState = S1000, NativeError = 0
Error = [Microsoft][SQL Native Client]Host-file columns may be skipped only when
copying into the Server
dòng đầu tiên không hoạt động đối với tôi: ''SETTINGS_ID' không phải là tùy chọn được công nhận'. Bất kỳ đầu mối? –
Bạn phải thay thế bằng tiêu đề cột của riêng mình. –
cách bạn có thể sử dụng lệnh sao chép với vị trí làm tham số? ví dụ: 'EXEC master..xp_cmdshell 'copy/b"' + @OutputLocationHeader + '"+"' + @OutputLocationData + '""' + @OutputLocation + '"'' nó cho tôi một lỗi cho '+ đầu tiên 'dấu hiệu – Stephanie