Nhập và xuất dữ liệu SQL Server từ dòng lệnh với Bcp

Bcp là cách nhanh nhất để lấy dữ liệu vào cơ sở dữ liệu

Lệnh sao chép số lượng lớn (bcp) của Microsoft SQL Server cung cấp cho bạn khả năng chèn số lượng lớn các bản ghi trực tiếp từ dòng lệnh. Ngoài việc là một công cụ hữu ích cho người dùng dòng lệnh, tiện ích bcp là một công cụ mạnh mẽ cho những người tìm cách chèn dữ liệu vào cơ sở dữ liệu SQL Server từ bên trong một tệp lô hoặc phương pháp lập trình khác. Có rất nhiều cách để lấy dữ liệu vào cơ sở dữ liệu, nhưng bcp là nhanh nhất khi nó được thiết lập với các tham số đúng.

bcp Cú pháp

Cú pháp cơ bản để sử dụng bcp là:

bcp

nơi các đối số có các giá trị sau:

Ví dụ về nhập bcp

Để đặt tất cả lại với nhau, hãy tưởng tượng bạn có một bảng trái cây trong kho dữ liệu của bạn và bạn muốn nhập tất cả các bản ghi từ một tệp văn bản được lưu trữ trên ổ cứng của bạn vào cơ sở dữ liệu đó. Bạn sẽ sử dụng cú pháp lệnh bcp sau:

bcp inventory.dbo.fruits trong "C: \ fruit \ inventory.txt" -c -T

Điều này tạo ra kết quả sau:

C: \> bcp inventory.dbo.fruits trong "C: \ fruit \ inventory.txt" -t -T Bắt đầu sao chép ... 36 hàng được sao chép. Kích thước gói mạng (byte): 4096 Thời gian đồng hồ (mili giây) Tổng cộng: 16 Trung bình: (2250.00 hàng mỗi giây) C: \>

Bạn có thể đã nhận thấy hai tùy chọn mới trên dòng lệnh đó. Tùy chọn –c chỉ định rằng định dạng tệp của tệp nhập sẽ là văn bản được phân tách bằng tab với mỗi bản ghi trên một dòng mới. Tùy chọn –T chỉ định rằng bcp nên sử dụng xác thực Windows để kết nối với cơ sở dữ liệu.

Ví dụ xuất bcp

Bạn có thể xuất dữ liệu từ cơ sở dữ liệu của mình bằng bcp bằng cách thay đổi hướng hoạt động từ "in" sang "out". Ví dụ, bạn có thể đổ nội dung của bảng trái cây vào một tệp văn bản bằng lệnh sau:

bcp inventory.dbo.fruits ra "C: \ fruit \ inventory.txt" -c -T

Đây là cách nhìn vào dòng lệnh:

C: \> bcp inventory.dbo.fruits ra "C: \ fruit \ inventory.txt" -c -T Bắt đầu sao chép ... 42 hàng sao chép. Kích cỡ gói mạng (byte): 4096 Giờ Đồng hồ (mili giây) Tổng cộng: 1 Trung bình: (42000.00 hàng mỗi giây) C: \>

Đó là tất cả những gì có trong lệnh bcp. Bạn có thể sử dụng lệnh này từ bên trong các tệp lô hoặc các chương trình khác có quyền truy cập vào dòng lệnh DOS để tự động hóa việc nhập và xuất dữ liệu từ cơ sở dữ liệu SQL Server của bạn.