Ошибка импорта BCP с файлом формата XML и столбцом идентификаторов
Я создал таблицу в SQL-сервере, как:
CREATE TABLE [dbo].[
[myId] [smallint] IDENTITY(1,1) NOT NULL,
[name] [nchar](10) NOT NULL,
[value] [int] NOT NULL,
CONSTRAINT [PK_metadado] PRIMARY KEY CLUSTERED
(
[myId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
Я хочу импортировать файл в моей таблице, используя формат XML. У меня проблема, потому что на моем столе был "myId". Я думаю, что это ошибка в BCP, потому что, если я не добавлю столбец myId, импорт работает нормально.
Файл:
Test 0010000290
Файл формата XML:
<BCPFORMAT
xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="CharFixed" LENGTH="10"/>
<FIELD ID="2" xsi:type="CharFixed" LENGTH="5"/>
<FIELD ID="3" xsi:type="CharFixed" LENGTH="5"/>
</RECORD>
<ROW>
<COLUMN SOURCE="3" NAME="value" xsi:type="SQLINT" />
<COLUMN SOURCE="1" NAME="name" xsi:type="SQLCHAR" />
</ROW>
</BCPFORMAT>
Выход:
Starting copy...
SQLState = 23000, NativeError = 515
Error = [Microsoft][SQL Server Native Client 10.0][SQL Server]Cannot insert the value NULL into column 'value', table 'XXX.dbo.metadata'; column does not allow nulls. INSERT fails.
SQLState = 01000, NativeError = 3621
Warning = [Microsoft][SQL Server Native Client 10.0][SQL Server]The statement has been terminated.
BCP copy in failed
редактирование
@MatthewMartin: «ценность» стала нулевой с моим первым форматом. Это работает, если я создаю этот странный формат XML сзначение NULL колонка
<COLUMN SOURCE="2" NAME="null" xsi:type="SQLCHAR" />
<COLUMN SOURCE="1" NAME="name" xsi:type="SQLCHAR" />
<COLUMN SOURCE="3" NAME="value" xsi:type="SQLINT" />