我有一个像这样定义的表:
CREATE TABLE ItemCategory
(
ID INT IDENTITY NOT NULL PRIMARY KEY,
CategoryID INT NOT NULL,
ItemID INT NOT NULL
);
此表链接到两个外键上的两个表。
我有这个SQL语句
INSERT INTO ItemCategory (CategoryID, ItemID)
VALUES (@category, @item)
参数设置如下:
var p1 = new SqlCeParameter("@category", SqlDbType.Int);
var p2 = new SqlCeParameter("@item", SqlDbType.Int);
p1.Value = categoryID;
p2.Value = itemID;
参数的值是正确的(我已经调试和检查过)因此不应该有任何外键错误。
当我执行SQL语句时,我收到以下错误:
该列不能包含空值。 [列名= ID,表名= ItemCategory]
但是我不理解这一点,因为ID
列设置为Identity
列,因此我不需要提供值,它应该自动增加。
为什么会这样?
答案 0 :(得分:1)
尝试添加IDENTITY (1,1)
[Id] int NOT NULL IDENTITY (1,1)