Как сохранить значения NULL при использовании служб SSIS для импорта из плоского файла в SQL Server 2005 - PullRequest
13 голосов
/ 07 января 2011

Я экспортировал записи в плоский файл, разделенный "|" и кажется, что когда я импортирую эти записи в новую базу данных, SQL Server обрабатывает значения NULL как пустые поля. Запросы IMy работали правильно, когда записи / поля были равны NULL, и поэтому я хочу найти способ сохранить значения NULL в данных или преобразовать пустые поля в значения NULL. Я предполагаю, что первое будет проще, но я не знаю, как это сделать. Любая помощь будет оценена.

Ответы [ 3 ]

18 голосов
/ 05 сентября 2012

У меня просто была такая же проблема. Я решил это, изменив свойство RetainNulls в свойствах источника плоских файлов в задаче потока данных.

16 голосов
/ 07 января 2011

В целевом соединении в потоке данных есть свойство, которое вы можете проверить, которое говорит Keep null, просто проверьте это. Почему это не по умолчанию, я никогда не узнаю.

Хм, что-то странное происходит там. Я могу предложить, чтобы вы затем очистили данные и изменили их на null, вы можете сделать это как часть потока данных или сделать два потока данных, один из которых вставляет данные в промежуточную таблицу, а затем запустить задачу SQl exectue для выполнения и затем создайте поток данных для запуска из промежуточной таблицы в реальную таблицу.

0 голосов
/ 05 января 2018

Если кто-то ищет, как это сделать при программной сборке пакета, вам нужно установить переменную в вашем объекте CManagedComponentWrapper

CManagedComponentWrapper instanceSource = ComponentSource
...
instanceSource.SetComponentProperty("RetainNulls", true);
...