【问题标题】:Primary key error in using auto increment in SQL Server CE在 SQL Server CE 中使用自动增量时出现主键错误
【发布时间】:2013-07-11 17:18:17
【问题描述】:

我在 SQL Server Compact 中将主键字段设置为自动增量和标识,当我向其中插入新记录时,我不填充标识值并将其传递为 null。 但是在运行应用程序时出现此错误:

"不支持服务器生成的键和服务器生成的值 由 SQL Server Compact 提供。”

【问题讨论】:

  • 你有什么问题?
  • 问题是我应该怎么做才能在我的表中插入自增主键记录?!
  • 我的问题有点讽刺,因为您并没有真正说明问题,并且错误消息很清楚:它只是不受支持。为避免出现问题,您最好的选择是使用 Guid 作为 ErikEJ 状态

标签: c# sql-server-ce primary-key identity


【解决方案1】:

对于 SQL Compact 3.5,您必须使用 Guid 作为 ID,因为使用实体框架时不支持 int IDENTITY。但是 int 可以与 SQL Compact 4.0 一起使用。

【讨论】:

    【解决方案2】:

    为避免此错误,您应该在插入中单独保留 ID 列。 如果你有一个包含三列的表,你应该像这样插入: 表声明:

    CREATE TABLE Books 
    (
       ID INT IDENTITY, 
       Name NVARCHAR(200), 
       PublishYear DATETIME
    )
    

    然后像这样插入你的记录:

    INSERT INTO Books (Name, PublishYear) 
    VALUES (N'Boof-e koor', '1937-10-28 12:30:00.000')
    

    同样,您不得在插入语句中提及 INDENTITY 列。

    【讨论】:

    • 亲爱的 Soheil,我正在使用实体框架,并且我使用了 add addObject 方法。我需要创建我的实体的一个对象,而不是我来忽略插入中的身份列
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 2013-05-23
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 2016-06-19
    相关资源
    最近更新 更多