向 SQL server Compact 数据库插入自动增量密钥
Posted
技术标签:
【中文标题】向 SQL server Compact 数据库插入自动增量密钥【英文标题】:Insert an auto increment Key to SQL server Compact database 【发布时间】:2013-12-22 11:55:25 【问题描述】:这是我的桌子Produit(ID,libelle,prix)
。 ID 是自动递增的,这是插入指令:
cmd.Connection = connexion
cmd.CommandText = "INSERT into Produit_fini(libelle,prix) values (@libelle,@prix)"
cmd.Parameters.AddWithValue("@libelle", libelle)
cmd.Parameters.AddWithValue("@prix", prix)
connexion.Open()
cmd.ExecuteNonQuery()
connexion.Close()
执行之后,出现一个错误,说我不能在 ID 中插入 NULL 值!?
该列不能包含 NULL 值。 [列名=ID,表名 = Produit_fini ]
如何在此处插入 ID?
【问题讨论】:
您确定Id
列是自动递增的吗?即用IDENTITY(?, ?)
属性声明?
我以图形方式创建表格,因此这些是该列的属性:AllowDBNull = False
AutoIncrement = true
AutoIncrementSeed = 1
AutoIncrementStep = 1
Datatype = System.Int32
MaxLength = -1
@MahmoudGamal
我真的不知道,但它应该可以正常工作。您能否尝试像ALTER TABLE Produit_fini ALTER COLUMN ID INT IDENTITY(1, 1);
那样以编程方式进行操作?然后尝试插入。
这个Sql请求不被允许执行不了! @MahmoudGamal
"The ALTER TABLE SQL construct or statement is not supported.").
【参考方案1】:
似乎此列ID
未使用IDENTITY
属性定义。但是,您将无法更改表格以添加 IDENTITY
属性。
您必须删除表(如果其中没有数据),然后使用列 ID
具有 IDENTITY(1,1)
再次创建它。
您可能还需要使用 this tool Compactview 才能针对 SQL Server 精简版数据库运行语句。
【讨论】:
以上是关于向 SQL server Compact 数据库插入自动增量密钥的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 2008 到 SQL Server Compact Edition?
使用 SQL Server Compact 与专用 SQL Server 数据库的缺点
SQL Server Express 和 SQL Server Compact Edition