在 SQL Server 中,可以通过以下方式设置外键约束:
在创建表时,使用 FOREIGN KEY 关键字指定外键约束。例如:
CREATE TABLE Orders ( OrderID int PRIMARY KEY, CustomerID int, OrderDate date, FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) );
在已经存在的表上添加外键约束。例如:
ALTER TABLE Orders ADD CONSTRAINT FK_CustomerID FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID);
可以指定外键约束的级联操作,例如当主键被删除时,外键如何处理。可以使用 ON DELETE 和 ON UPDATE 子句来指定级联操作。例如:
ALTER TABLE Orders ADD CONSTRAINT FK_CustomerID FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) ON DELETE CASCADE ON UPDATE CASCADE;
可以使用 WITH NOCHECK 子句创建外键约束,允许存在无效引用。例如:
ALTER TABLE Orders WITH NOCHECK ADD CONSTRAINT FK_CustomerID FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID);
需要注意的是,在设置外键约束时,必须确保外键列和主键列的数据类型和长度相同,否则会导致设置失败。