我正在使用 Microsoft SQL Server 并嘗試將外鍵添加到參考“客戶”表中的主鍵的“訂單”表中。我不斷收到此訊息:
訊息 1769,級別 16,狀態 1,第 28 行
外鍵 'orders_customerid_fk' 參考了參考表 'Orders' 中的無效列 'CustomerID'。訊息 1750,級別 16,狀態 0,第 28 行
無法創建約束或索引。請參閱以前的錯誤。
CREATE TABLE Customer
(
CustomerID INT NOT NULL PRIMARY KEY,
fName varchar(40),
lName varchar(40),
City varchar(40),
Country varchar(40),
Phone varchar(20)
);
CREATE TABLE Supplier
(
SupplierID INT NOT NULL PRIMARY KEY,
CompanyName varchar(40),
ContactName varchar(50),
ContactTitle varchar(40),
City varchar(40),
Country varchar(40),
Phone varchar(30),
Fax varchar(30),
);
CREATE TABLE Orders
(
OrderID INT NOT NULL PRIMARY KEY,
OrderDate datetime,
OrderNumber varchar(10),
TotalAmount decimal(12,2)
);
ALTER TABLE Orders
ADD CONSTRAINT Orders_CustomerID_FK
FOREIGN KEY(CustomerID) REFERENCES Customer(CustomerID);
uj5u.com熱心網友回復:
您缺少應該接受 FK 約束的列。
ALTER TABLE Orders
ADD CustomerID INT NULL; /*Adds a new int column existing rows will be
given a NULL value for the new column*/
或者
ALTER TABLE Orders
ADD CustomerID INT NOT NULL DEFAULT(0);
然后你可以
ALTER TABLE Orders
ADD CONSTRAINT Orders_CustomerID_FK
FOREIGN KEY(CustomerID)
REFERENCES Customer(CustomerID)
;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/523358.html
標籤:sql服务器tsql
