这是我在LinqPad中使用的SQL:
CREATE TABLE Category
(
catID int NOT NULL,
catName NVARCHAR(150) NOT NULL,
catDesc NVARCHAR(150) NULL,
catCount int NOT NULL ,
CONSTRAINT category_pk PRIMARY KEY (catID)
);
CREATE TABLE InventoryTBLC
(
itemID int NOT NULL IDENTITY(1,1) CONSTRAINT PK_items PRIMARY KEY,
itemName NVARCHAR(150) NOT NULL,
itemDesc NVARCHAR(150) NULL,
itemQuantity int,
itemPrice int,
imagePath NVARCHAR(300),
correctInsert NVARCHAR(300),
realImage image,
CONSTRAINT FK_category FOREIGN KEY (catID) REFERENCES Category(catID)
);
但是我收到以下错误:
无效的列ID。 [catID]
有人可以帮我使用LinqPad语法吗?
答案 0 :(得分:1)
如果要使用列作为外键,则必须先在表定义中列出该列!添加外键约束 NOT 将该列添加到您的表中!
这绝不是Linqpad特有的 - 这是标准SQL 行为。
因此,您需要将catId
添加到第二个表格中,如下所示:
CREATE TABLE InventoryTBLC
(
itemID int NOT NULL IDENTITY(1,1) CONSTRAINT PK_items PRIMARY KEY,
itemName NVARCHAR(150) NOT NULL,
itemDesc NVARCHAR(150) NULL,
itemQuantity int,
itemPrice int,
imagePath NVARCHAR(300),
correctInsert NVARCHAR(300),
realImage image,
catID int NOT NULL, -- this column *MUST* exist to be used as FK
CONSTRAINT FK_category
FOREIGN KEY (catID) REFERENCES Category(catID)
);
或者您可能希望使用InventoryTBLC
中其他预先存在的列之一作为您的FK列?