SQLCE插入sql错误“无法修改列。[列名= somefieldname]”

时间:2013-03-31 19:50:25

标签: sql-server-ce

我在使用SQLCE数据库执行简单的插入命令时遇到错误。

SQL:

insert into accountgroups (AcGroupId, AcGroupParentID, AcGroupName, AcGroupAlias, AcNatureID, AcBaseNatureID) values ('1', '0', 'Current Assets', '', '4', '1')

ERROR:

{"The column cannot be modified. [ Column name = AcGroupId ]"}

我尝试在VS2010 Studio SQL编辑器中执行相同的命令。并收到此错误

 Error Code: 80004005
 Message   : The column cannot be modified. [ Column name = AcGroupId ]
 Minor Err.: 25004
 Source    : SQL Server Compact ADO.NET Data Provider
 Err. Par. : AcGroupId

以上命令在MySQL数据库中运行良好。

请让我知道我做错了什么。

2 个答案:

答案 0 :(得分:3)

您可以这样插入ID列:

SET IDENTITY_INSERT accountgroups ON
insert into accountgroups (AcGroupId, AcGroupParentID, AcGroupName, AcGroupAlias, AcNatureID, AcBaseNatureID) values ('1', '0', 'Current Assets', '', '4', '1')
SET IDENTITY_INSERT accountgroups OFF

答案 1 :(得分:1)

AcGroupId似乎是一个ID列,它们通常设置为自动递增,因此无法手动设置。如果删除第一列和查询的第一个值,它可能会有效。