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

SQL sẽ không chèn giá trị null với BULK INSERT

Theo:

http://msdn.microsoft.com/en-us/library/ms187887 .aspx

Giá trị null có thể được chèn bằng cách có một trường trống trong tệp của bạn.

Tệp ví dụ là:

1,,DataField3
2,,DataField3

Ví dụ về phương pháp nhập tệp giữ giá trị rỗng là:

USE AdventureWorks;
GO
BULK INSERT MyTestDefaultCol2
FROM 'C:\MyTestEmptyField2-c.Dat'
WITH (
    DATAFILETYPE = 'char',
    FIELDTERMINATOR = ',',
    KEEPNULLS
);
GO

Được cấp, điều này có nghĩa là bạn sẽ phải thay đổi "NULL" của mình thành "" và bất kỳ chuỗi trống nào bạn muốn vì chuỗi trống sẽ được hiểu là null, nhưng nó có thể đủ để bạn bắt đầu? Tôi sẽ tưởng tượng để giữ cho các cột chuỗi trống của bạn, chúng sẽ cần được thay đổi từ

field1,,field2

đến

field1,"",field2

như ví dụ



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách kích hoạt XP của SQL Server Agent bằng T-SQL

  2. CẬP NHẬT nếu tồn tại CHÈN khác trong SQL Server 2008

  3. Làm cách nào để tính toán tương đương với SQL Server (băm ('SHA1', [ColumnName])) trong C #?

  4. Làm cách nào để truy vấn và phân tích cú pháp phân cấp danh sách liền kề bằng cte?

  5. Phạm vi ngày nằm giữa hai ngày trong truy vấn LINQ