2011-01-06 12 views
13

Tôi đã xuất bản ghi sang tệp phẳng được giới hạn bởi "|" và có vẻ như khi tôi nhập các bản ghi đó vào cơ sở dữ liệu mới, SQL Server xử lý các giá trị NULL dưới dạng các trường trống. Truy vấn IMy hoạt động đúng khi các bản ghi/trường là NULL và vì vậy tôi muốn tìm cách giữ lại các giá trị NULL trong dữ liệu hoặc chuyển đổi các trường trống thành giá trị NULL. Tôi cho rằng cái cũ sẽ dễ hơn, nhưng tôi không biết phải làm thế nào. Bất kỳ trợ giúp sẽ được đánh giá cao.Làm cách nào để giữ lại giá trị NULL khi sử dụng SSIS để nhập từ tệp phẳng trong SQL Server 2005

Trả lời

16

Trong kết nối đích của bạn trong luồng dữ liệu, có một thuộc tính mà bạn có thể chceck cho biết Giữ giá trị rỗng, JUst kiểm tra điều đó. Tại sao đó không phải là mặc định tôi sẽ không bao giờ biết.

Hmmm điều gì đó đang diễn ra ở đó. Tôi có thể đề nghị bạn làm sạch dữ liệu và thay đổi nó thành null, bạn có thể làm điều này như một phần của dataflow hoặc thực hiện hai dataflows, một dữ liệu chèn dữ liệu vào bảng dàn dựng, sau đó chạy một nhiệm vụ SQl để làm sạch lên và sau đó tạo một dataflow để chạy từ bảng dàn dựng đến bảng thực.

+4

+1, Amen để "tại sao đó không phải là mặc định tôi sẽ không bao giờ biết " –

+0

Tôi đã chọn hộp đó nhưng dường như nó không tạo ra sự khác biệt; các trường vẫn xuất hiện dưới dạng khoảng trống trong bảng thay vì NULL. Tôi cũng đã kiểm tra lại tập tin và không có dấu cách giữa dấu phân cách của tôi "|". Ngay cả bản xem trước cũng hiển thị các trường dưới dạng khoảng trắng. Tôi đã bỏ lỡ một cái gì đó? – ofm

18

Tôi vừa gặp sự cố tương tự. Tôi đã giải quyết nó bằng cách thay đổi thuộc tính RetainNulls trong các thuộc tính của Nguồn Tệp Phẳng trong Tác vụ Luồng Dữ liệu.

+0

Điều này cho phép các giá trị trống được coi là NULL và tiết kiệm rất nhiều công việc thiết lập các cột có nguồn gốc để xử lý điều đó. –

0

trong trường hợp bất cứ ai đang tìm kiếm cách để làm điều này khi xây dựng các gói programatically bạn cần phải thiết lập các biến trong đối tượng CManagedComponentWrapper bạn

CManagedComponentWrapper instanceSource = ComponentSource 
... 
instanceSource.SetComponentProperty("RetainNulls", true); 
Các vấn đề liên quan