2016-02-11 2 views
0

Я работаю над SQL Server. У меня разные базы данных, и я пытаюсь вставить значения одного столбца таблицы таблиц базы данных в другие столбцы таблицы базы данных, а также несколько столбцов, которые не являются нулевыми, а данные не помещаются в эти столбцы, а при этом я получаю ошибка,2 Таблицы таблиц в SQL Server

INSERT INTO dbo.DocComponent(MIMETYPE) 
    SELECT MIMETYPE 
    FROM Test67.dbo.PO_MIMETYPE; 

ошибка:

Cannot insert the value NULL into column 'ID', table 'FullTextDB.dbo.DOCCOMPONENT'; column does not allow nulls. INSERT fails.

Может кто-то имеет решение для этого ...?

+0

Ну, ошибка кажется кристально чистой - у вас есть столбец 'ID' в вашей таблице' DocComponent', который установлен на 'NOT NULL' и, очевидно, не имеет значения по умолчанию (или' IDENTITY' spec), и поэтому вы ** должны предоставить ** значение для этого столбца 'ID' в вашем' INSERT' .... использовать 'INSERT INTO dbo.DocComponent (ID, MimeType) SELECT xxxx, Mimetype FROM ..... . –

+0

есть еще одна проблема. ID DocComponent не принадлежит к ID po_MIMETYPE. Таблица имеет значение diffferent .. –

+0

Независимо от того, что вы просто ** ДОЛЖЕН ** предоставить значение для 'ID'! –

ответ

0

Это ясно указывает на то, что ваш столбец ID не является столбцом IDENTITY, а также является столбцом первичного ключа, и поэтому NULL не допускается. Вы также укажете значение столбца идентификатора.

INSERT INTO dbo.DocComponent(ID, MIMETYPE) 
    SELECT 1, MIMETYPE 
    FROM Test67.dbo.PO_MIMETYPE; 

Лучше сделать свой столбец таблицы IDIDENTITY столбца. См. Adding an identity to an existing column

+0

ID таблицы DocCOmponent отличается от ID таблицы MIMETYPE, поэтому я не могу правильно вставить идентификатор других таблиц –

+1

, либо либо предоставить это явно, либо сделать идентификатор столбцом идентификации – Rahul

Смежные вопросы