我有一個簡單的SQL Server CE數據庫,試圖更新表中的一行。以下命令的工作原理:SQL Server CE Where子問題
UPDATE ConsoleUsage
SET TotalCircuits = 123
但上面的命令更新的所有行,所以我想是這樣的:
UPDATE ConsoleUsage
SET TotalCircuits = 123
WHERE Index = 912
的目的是更新表中的一行。但此命令失敗,提供下述神祕的錯誤消息(這裏使用MS建議格式):
錯誤代碼:80040E37
消息:[UPDATE ConsoleUsage SET TotalCircuits = 123 WHERE指數= 912]
次要ERR。 :0
來源:SQL Server 2005移動版ADO.NET數據提供程序
錯誤。帕。 :UPDATE ConsoleUsage SET TotalCircuits = 123 WHERE指數= 912
「索引」列的索引的表,我已經檢查了所有的拼寫和我既沒有cmd.CommandType =的CommandType試過這種.TableDirect;和cmd.IndexName =「MainIndex」;
我錯過了什麼?
更新:在WHERE子句中使用不同的字段試過,這個工作。所以我的「索引」列出現錯誤,無論是它的名稱還是類型 - 它都是「主鍵」(但是應該如此?),輸入smallint。 – toml 2009-12-30 14:12:57
將名稱「索引」更改爲其他內容(例如「Id」)並嘗試。它工作嗎? – Sasha 2009-12-30 14:25:24
我添加了一個名爲DateCode的新列,與Index相同的數據但不是主鍵,現在可以工作。因爲所有表(我認爲)都必須有主鍵,所以我會留下索引。不擔心有點浪費空間,這張表沒有多少行。 – toml 2009-12-30 16:17:22