Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Chèn một chuỗi trống trên SQL Server với BULK INSERT

Theo như tôi biết, chèn số lượng lớn không thể chèn chuỗi trống, nó có thể giữ giá trị null hoặc sử dụng giá trị mặc định với tùy chọn keepnulls hoặc không có tùy chọn keepnulls. Đối với 3 bản ghi mẫu của bạn, sau khi chèn cơ sở dữ liệu, nó sẽ giống như sau:

    | id    |  name 
    | 1     |  NULL 
    | 1     |  ""   
    | 1     |  ''   

Lý do là, phần chèn số lượng lớn sẽ coi giá trị hàng đầu tiên, cột thứ hai của bạn là null; đối với 2 hàng khác, sẽ lấy giá trị cột thứ hai không phải là null và lấy giá trị như vậy.

Thay vì để Chèn hàng loạt chèn giá trị chuỗi trống cho bạn, bạn có thể để cột bảng có giá trị mặc định là chuỗi trống.

Ví dụ như sau:


CREATE TABLE BulkInsertTest (id int, name varchar(10) DEFAULT '')
Bulk Insert same CSV file into table
BULK INSERT Adventure.dbo.BulkInsertTest
   FROM '....\test.csv'
   WITH 
      (
         FIELDTERMINATOR ='\,',
         ROWTERMINATOR ='\n'
      )
   SELECT * FROM BulkInsertTest

Kết quả sẽ như sau:(Hàng đầu tiên trong CSV của bạn sẽ nhận được một chuỗi trống)

    | id    |  name 
    | 1     |   
    | 1     |  ""   
    | 1     |  ''   


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. @@ IDENTITY, SCOPE_IDENTITY (), OUTPUT và các phương pháp truy xuất danh tính cuối cùng khác

  2. Truy vấn không hoạt động tốt trong vòng lặp while

  3. PHP 5.5.0 w / Microsoft SQL Server 2008 R2 - Không có sqlsrv_connect ()?

  4. Hiển thị mối quan hệ Cha-Con khi Cha và Con được lưu trữ trong cùng một bảng

  5. SQL Injjection với thay thế dấu ngoặc kép và xác thực số nguyên