2013-10-16 69 views
0

後插入我在做的時候:獲得重複鍵刪除行

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

IdPK uniqueidentifieridFKFK uniquedientifiernot nullDataintnot null

然後我做的:

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

這裏是e我得到錯誤:

無法在具有唯一索引'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 

爲什麼會出現這個錯誤?

+2

'idFK ='_ F3'這裏是值的空間,所以你選擇另一行,而不是「刪除」一個,也許它是問題? –

+0

謝謝,但我在這裏複製信息時意外地加了空格,我的腳本中沒有空格恐怕 – user523129

回答

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' 
+0

複製並粘貼更新:無法在具有唯一索引「ixmytable」的對象'dbo.mytable'中插入重複鍵行。 – user523129

+0

我已更正,第三個查詢中沒有空格 – user523129

+0

@ user523129在插入之前,您必須先刪除該特定行。 – Ritesh

0

嘗試插入之前做到這一點:

SET IDENTITY_INSERT ON 
+0

我收到此錯誤: 表'mytable'沒有標識屬性。無法執行SET操作。 – user523129