1

我正在做:

DELETE FROM mytable WHERE id = '6B4AE2C6-7C26-4BB0-AEC2-9590A7A167F3' AND idFK='F3696D77-AC4A-4235-B6CB-C887D62FF860' AND data=3

( Idis aPK uniqueidentifieridFKis a FK uniquedientifier, not nullboth. Datais int not null)

然后我做:

INSERT INTO mytable (id, idFK, data) 
VALUES ('6B4AE2C6-7C26-4BB0-AEC2-9590A7A167F3','F3696D77-AC4A-4235-B6CB-887D62FF860',6)

这就是我得到错误的地方:

无法在具有唯一索引“ixmytable”的对象“dbo.mytable”中插入重复的键行。

这是选择:

SELECT * FROM mytable WHERE id = '6B4AE2C6-7C26-4BB0-AEC2-9590A7A167F3' AND idFK='F3696D77-AC4A-4235-B6CB-C887D62FF860' AND data=3

它显示了什么:

------------------+ id +--                             ---+ idFK +------   -+ data 
6B4AE2C6-7C26-4BB0-AEC2-9590A7A167F3    F3696D77-AC4A-4235-B6CB-C887D62FF860    3

为什么我会收到此错误?

4

2 回答 2

1

如果您想从表中删除一行,则仅用于删除

DELETE FROM mytable WHERE id = '6B4AE2C6-7C26-4BB0-AEC2-9590A7A167F3'

足够的。但是,如果您想更新特定值,则可以尝试使用

UPDATE mytable SET DATA = 6 WHERE id = '6B4AE2C6-7C26-4BB0-AEC2-9590A7A167F3'

因为id是唯一标识符,可以用来唯一标识每一行。而且我认为最初在您的数据库中,idFK列的值只有一个空格,因此您遇到了错误。

//Third Query
idFK=' F3696D77-AC4A-4235-B6CB-C887D62FF860'
      ^
//But First and second query
idFK='F3696D77-AC4A-4235-B6CB-C887D62FF860'
于 2013-10-16T07:04:21.030 回答
0

在插入之前尝试这样做:

SET IDENTITY_INSERT ON
于 2013-10-16T06:57:49.930 回答