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