У меня есть следующий (очень упрощенный) XML-документ, который я читаю в свою базу данных с помощью функции OPENXML:
<root>
<row>
<bar>123</bar>
</row>
<row>
<bar>0</bar>
</row>
<row>
<bar></bar>
</row>
</root>
Я импортирую в базу данных примерно так:
insert into [Foo]
([bar])
select
ds.[bar]
from openxml(@xmlHandle, 'root/row', 2)
with ([bar] int) ds
Проблема в том, что OPENXML преобразует пустые поля с типом данных int в ноль, поэтому это вставляется в мою таблицу:
bar
----
123
0
0
Что я хочу вставить в мою таблицу:
bar
----
123
0
NULL
Как заставить функцию OPENXML обрабатывать пустые поля как NULL и не преобразовывать их в ноль по умолчанию?