SQL Server CE Where子句问题

时间:2009-12-29 18:59:22

标签: sql-server sql-server-ce

我有一个简单的SQL Server CE数据库,试图更新表中的行。以下命令有效:

UPDATE ConsoleUsage 
SET TotalCircuits = 123

但是上面的命令会更新所有行,所以我想要的是:

UPDATE ConsoleUsage 
SET TotalCircuits = 123 
WHERE Index = 912

目的是更新表中的单行。但是此命令失败,给出以下神秘错误消息(此处使用MS建议格式):

  

错误代码:80040E37
  消息:[UPDATE Con​​soleUsage SET TotalCircuits = 123 WHERE Index = 912]
  次要错误:0   来源:SQL Server 2005移动版ADO.NET数据提供商
  呃。帕。 :UPDATE Con​​soleUsage SET TotalCircuits = 123 WHERE Index = 912

“索引”列是表的索引,我检查了所有拼写,我已经尝试了这个,无论是否有cmd.CommandType = CommandType.TableDirect;和cmd.IndexName =“MainIndex”;

我错过了什么?

2 个答案:

答案 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