在SQL服务器中,我使用表变量,当完成操作它时,我想将其值插入到具有标识列的实际表中,该列也是PK。
我制作的表格变量有两列;物理表有四个,第一个是标识列,一个整数IK。我要插入的列的数据类型与目标列的数据类型相同。数据类型。
INSERT INTO [dbo].[Message] ([Name], [Type])
SELECT DISTINCT [Code],[MessageType]
FROM @TempTableVariable
这失败了:
无法在对象' dbo.Message'中插入重复的键行。具有独特的索引 ' IX_Message_Id&#39 ;.重复键值为(ApplicationSelection)。
但是当尝试仅插入值(...)时,它可以正常工作。
我如何做对吗?
答案 0 :(得分:0)
似乎数据“ApplicationSelection”已经在数据库中。你需要编写select以排除数据库中已有的记录。你可以用where not exists子句或左连接来做到这一点。 LOOK up teh index以查看除了身份之外哪个字段是唯一的。这将告诉您需要检查哪些字段以查看当前是否存在记录。