2016-06-21 26 views
-2

我试图在SSIS表中插入新行,并且由于我的标识列而不断收到错误。我叫使用SSIS的标识列

SET IDENTITY_INSERT TableName OFF 

但它仍然不允许我在表中放置新的行。

这是我从SSIS得到的所有错误代码。

[OLE DB Destination [205]] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "The statement has been terminated.". An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "Cannot insert the value NULL into column 'IDEM_ID', table 'Person_DW.dbo.IDEM_Dim'; column does not allow nulls. INSERT fails.".

[IDEM_STG [14]] Error: The attempt to add a row to the Data Flow task buffer failed with error code 0xC0047020.

谢谢

+3

如果你想插入特定值到'IDENTITY'列,那么你必须使用'SET IDENTITY_INSERT TableName ** ON **'!这**启用**将特定值插入到“标识”列中的功能 - 并且在完成后不要忘记返回**关闭** –

+2

将数据插入到具有Identity的列中似乎是一个坏主意,但。 – Shyju

+0

错误信息非常清晰 - '不能将NULL值插入'IDEM_ID'列中。我严重怀疑你想插入一个NULL ID。您是否想要忽略ID标识列并让表格分配ID?然后,只需*忽略* - 不要将其包含在源查询中,也不要将其映射到目标中 –

回答

0

谢谢你的回答,其实我不想插入值我自己,我希望把它自动递增,表中有地方约1.5米排在它与标识列)