我有一个简单的SQL Server CE数据库,试图更新表中的行。以下命令有效:
UPDATE ConsoleUsage
SET TotalCircuits = 123
但是上面的命令会更新所有行,所以我想要的是:
UPDATE ConsoleUsage
SET TotalCircuits = 123
WHERE Index = 912
目的是更新表中的单行。但是此命令失败,给出以下神秘错误消息(此处使用MS建议格式):
错误代码:80040E37
消息:[UPDATE ConsoleUsage SET TotalCircuits = 123 WHERE Index = 912]
次要错误:0 来源:SQL Server 2005移动版ADO.NET数据提供商
呃。帕。 :UPDATE ConsoleUsage SET TotalCircuits = 123 WHERE Index = 912
“索引”列是表的索引,我检查了所有拼写,我已经尝试了这个,无论是否有cmd.CommandType = CommandType.TableDirect;和cmd.IndexName =“MainIndex”;
我错过了什么?
答案 0 :(得分:1)
我认为“索引”是一个保留字。尝试用括号括起来:
UPDATE ConsoleUsage SET TotalCircuits = 123 WHERE [Index] = 912
答案 1 :(得分:1)
在不知道表格结构的情况下(你可以发布表格的创建脚本吗?)这里有一些我会尝试的事情:
为了以防万一,在所有列和表名称周围加上方括号([])以将它们转义出来 将表的模式名称放到表中,dbo。[ConsoleUsage]而不是[ConsoleUsage] 检查[Index]是否为char字段,如果是
,请使用'912'而不是912尝试转换语句: 更新T SET TotalCircuits = 123 来自dbo。[ConsoleUsage] T. 在哪里T. [Index] = 912