2016-02-11 56 views
0

我正在使用SQL Server。我有不同的数据库,我试图将一个数据库表列值的值插入到其他数据库表列中,并且还有更多的列不是空值,也没有数据插入到这些列中,同时这样做,我越来越错误,在SQL Server中插入2个DB表

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

嗯,错误似乎很清晰 - 您的表DocComponent中有一个ID列,它被设置为NOT NULL,并且显然没有默认值(或IDENTITY规范),因此你必须为你的'INSERT'中的'ID'列提供一个**值....使用'INSERT INTO dbo.DocComponent(ID,MimeType)SELECT xxxx,Mimetype FROM ..... ' –

+0

还有一个问题DocComponent的ID不属于ID po_MIMETYPE表都是不同的.. –

+0

无论 - 你只是**必须**为ID提供一个值! –

回答

0

明确推断您的ID列不是IDENTITY列,也是主键列,因此不允许使用NULL。您也将为ID列提供一些价值。

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

你最好让你的表列IDIDENTITY列。请参阅Adding an identity to an existing column

+0

DocCOmponent Table的ID与MIMETYPE表的ID不同,所以我无法插入其他表 –

+1

的ID,然后提供明确的ID或使ID成为标识列 – Rahul