2014-02-26 22 views
0

我已創建一張至今包含10行的卡片表。如果我執行:SQL DELETE似乎可以正常工作,但不會執行更改

delete from [Card] where cardnumber = 00010 //this card being held in the last row 

我得到的結果消息(1行(S)的影響),這是我所期待的作品,但在打開我發現,該行仍然存在表。

接下來,我用編輯熱門SSMS 200行手動選擇該行並刪除它,在它被從表中刪除,但是當我執行,該行早在表中。

最後,我創建了一個存儲過程執行時返回成功,但更改還沒有被保留。

然而令人感到奇怪的是,我有一個CardAmount表到每卡持有分卡表的關係,以及卡正在從CardAmount刪除。

我有看this的問題,但我不認爲這是以往任何時候都解決了。

+2

Cardnumber字段是什麼數據類型?有= 00010有點奇怪。 – Paddy

+0

此外 - 此表上是否有觸發器可能會中斷您的刪除? – Paddy

+4

首先猜測會是一個'而不是delete'觸發器,它忘記了實際上影響了它的執行刪除的表。 –

回答

2

第一個猜測(事實證明是正確的)將是一個instead of delete觸發器,它忘記實際影響它正在執行刪除的表。

這是一個常見的錯誤,特別是如果你正在實現一些遠程形式的級聯(並且不能在外鍵約束上使用ON DELETE CASCADE),你必須使用INSTEAD OF觸發器,但忽略執行底層表上的DELETE

+0

此問題是由於我的錯誤,但這個答案將是有用的其他人。再次感謝! –

+0

+1斑點 –

相關問題