【发布时间】:2020-03-27 08:45:16
【问题描述】:
Table_A 架构:
Id (PK, int)
Name (nvarchar(40))
UserId (**FK**, int)
Date (datetime)*
Table_B 架构:
Id (PK, int)
Name (nvarchar(40))
UserId (int)
Date (datetime)
UserId 列在Table_A 中定义为外键。
我需要将数据从Table_B 复制到Table_A,我使用了:
SET IDENTITY_INSERT Table_A ON
INSERT INTO Table_A ([Id], [Name], [UserId], [Date])
SELECT [Id], [Name], [UserId], [Date]
FROM Table_B
但我明白了:
INSERT 语句与 FOREIGN KEY 约束“FK_UserId”冲突
冲突发生在数据库“Table_A”、表“dbo.Users”、列“Id”中。
表Users当然存在。
仅供参考
这种情况是由于SO Demo Db没有FK信息这一不幸的事实。
见related question
【问题讨论】:
-
你不能。这就是关系数据库实施关系完整性的方式。您可以删除 FK 或仅选择不违反 FK 的行或使用缺失数据填充外部表。
-
级联选项可能会有所帮助。
标签: sql sql-server insert foreign-keys schema