这是我的代码。
CREATE TABLE CATEGORY
(
CategoryNo int IDENTITY(1,1) NOT NULL,
AutoIncCategoryNo AS 'CAT' + RIGHT('00000' + CAST(CategoryNo AS VARCHAR(5)),5) PERSISTED,
CategoryName varchar(100) NOT NULL,
PRIMARY KEY (AutoIncCategoryNo)
);
CREATE TABLE PRODUCT
(
ProductNo int IDENTITY(1,1) NOT NULL,
AutoIncProduct AS 'P' + RIGHT('00000' + CAST(ProductNo AS VARCHAR(5)),5) PERSISTED,
ProductName varchar(100) NOT NULL,
CategoryCode VARCHAR(5),
UnitPrice decimal(6,2),
PRIMARY KEY (AutoIncProduct),
CONSTRAINT CategoryCode_Constraint
FOREIGN KEY (CategoryCode)
REFERENCES CATEGORY(AutoIncCategoryNo)
);
我有两个表如上所示。这里是我得到的错误。
列“CATEGORY.AutoIncCategoryNo”与外键“CategoryCode_Constraint”中得引用列“PRODUCT.CategoryCode”得尺子或小数位数不同.参与外键关系得列必须定义为具有相同得尺子与小数位数.
我该如何修复它?
3条答案
按热度按时间t2a7ltrp1#
在创建外键约束时,请确保列数据类型和大小相等。请尝试以下操作。
drkbr07n2#
您正在CATEGORY.AutoIncCategoryNo列中添加带有Varchar(5)的“CAT”
但是Product.CategoryCode是VARCHAR(5)。您必须将其设置为VARCHAR(8)。
q3aa05253#
列'Student.Admission_Number'与外键'FK__atten__Admission__75A278F5'中的引用列'atten.Admission_Number'的长度或小数位数不同。参与外键关系的列必须定义为具有相同的长度和小数位数