1

私がやっている:

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

IdはあでPK uniqueidentifierあり、両方です)idFKFK uniquedientifiernot nullDataint 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列の値にスペースが1つあるため、エラーが発生していると思います。

//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 に答える