Как сохранить значения NULL при использовании SSIS для импорта из плоского файла в SQL Server 2005
Я экспортировал записи в плоский файл, разделенный символом "|" и кажется, что когда я импортирую эти записи в новую базу данных, SQL Server рассматривает значения NULL как пустые поля. Запросы IMy работали правильно, когда записи/поля были NULL, поэтому я хочу либо найти способ сохранить значения NULL в данных, либо преобразовать пустые поля в значения NULL. Я предполагаю, что первая будет проще, но я не знаю, как это сделать. Любая помощь будет оценена.
Ответы
Ответ 1
В вашем целевом соединении в потоке данных есть свойство, которое вы можете chceck, которое говорит Keep nulls, JUst проверяет это. Почему это не по умолчанию, я никогда не узнаю.
Хммм что-то странное происходит там. Я могу предположить, что вы затем очистите данные и измените их на нуль, вы можете либо сделать это как часть потока данных, либо сделать два потока данных, один из которых вставляет данные в промежуточную таблицу, а затем запускает задачу Exectue SQl для очистки а затем создать поток данных, который будет выполняться из промежуточной таблицы в реальную таблицу.
Ответ 2
У меня была такая же проблема. Я разрешил его, изменив свойство RetainNulls в свойствах файла Flat File в задаче потока данных.
Ответ 3
в случае, если кто-то ищет, как это сделать, при создании пакета программно вам нужно установить переменную в объекте CManagedComponentWrapper
CManagedComponentWrapper instanceSource = ComponentSource
...
instanceSource.SetComponentProperty("RetainNulls", true);