我创建了一个表Demo
。我希望其键Customer_ID_f
引用其他名为CustomerID
的表的主键Customers
。
DEMO表(带外键)
CREATE TABLE Demo ( ID int NOT NULL, LastName varchar(255) NOT NULL, Age int Not Null, City varchar(200) DEFAULT 'Sydney', OrderDate DATE DEFAULT getdate(), CHECK (AGe>=18), Customer_ID_f char(5) not null PRIMARY KEY (ID), FOREIGN KEY (Customer_ID_f) REFERENCES Customers(CustomerID))
具有主键的客户表
关于CustomerID
表的字符Customers
的信息。
Select * From INFORMATION_SCHEMA.COLUMNS Where TABLE_NAME = 'Customers';
TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH dbo Customers CustomerID 1 NULL NO nchar 5 10
[您可以看到,在
Customers
表中,主键的nchar长度为5(max_length),我在演示表中使用了相同的字符。仍然出现错误。
错误
:列'Customers.CustomerID'与在外键中引用列'Demo.Customer_ID_f'的数据类型不同'FK__Demo__Customer_I__690797E6'。
Msg 1750,第16级,状态1,第156行无法创建约束或索引。请参阅先前的错误。
我创建了一个表Demo。我希望它的键Customer_ID_f引用其他名为Customers的表的主键CustomerID。 DEMO表(带有外键)CREATE TABLE演示(ID int NOT NULL,...
尝试这个: