![](/img/trans.png)
[英]adding a foreign key constraint to a primary key column of a table with existing data
[英]Could not create constraint or index or foreign key on primary key of existing table
我创建了一个表Demo
。 我希望它的键Customer_ID_f
引用其他一些名为Customers
CustomerID
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))
带主键的客户表
Customers
表的字符CustomerID
信息。
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”列与外键“FK__Demo__Customer_I__690797E6”中引用列“Demo.Customer_ID_f”的数据类型不同。
消息 1750,级别 16,State 1,第 156 行无法创建约束或索引。 查看以前的错误。
试试这个:
CREATE TABLE Demo (
ID int NOT NULL PRIMARY KEY identity(1,1),
LastName varchar(255) NOT NULL,
Age int Not Null,
City varchar(200) DEFAULT 'Sydney',
OrderDate DATE DEFAULT getdate(),
CHECK (AGe>=18),
Customer_ID_f nchar(5)
)
ALTER TABLE Demo
ADD CONSTRAINT FK_Demo_Customer_ID
FOREIGN KEY (Customer_ID_f) REFERENCES Customers(CustomerID)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.