DBCC CHECKIDENT(' table',RESEED,0)导致他的INSERT语句与FOREIGN KEY约束错误冲突

时间:2014-07-11 15:37:56

标签: sql sql-server

我有一个父表,其id列已定义为Identity。

CREATE TABLE [model].[Parent](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](max) NOT NULL)

现在我有另一个子表表引用父ID列

CREATE TABLE [model].[Child](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](max) NOT NULL,
[ParentId] [int] NULL)
GO
ALTER TABLE [model].[Child]  WITH CHECK ADD  CONSTRAINT [FK_ParentIdentity] FOREIGN KEY([ParentId])
REFERENCES [model].[Parent] ([Id])
GO

两个表都将id作为主键。现在的问题是我在进行迁移时设置了

DBCC CHECKIDENT ('[Model].[Parent]', RESEED, 0)
DBCC CHECKIDENT ('[Model].[Child]', RESEED, 0)

我使用动态查询生成插入语句。

现在当我插入第一行时,我在子表中为Parent.id插入Null值并得到以下错误:

  

INSERT语句与FOREIGN KEY约束冲突" FK_ParentIdentity"。冲突发生在数据库" DBName",table" model.Parent",column' Id'中。   检查身份信息:当前身份值' NULL'。

任何人都可以帮助我,我看到很多解决方案,但没有帮助我。我没有选择删除该表并再次创建它。

0 个答案:

没有答案