sql server外键关系
时间: 2025-05-03 15:26:15 浏览: 33
### 创建和管理外键约束
在外键定义过程中,`FOREIGN KEY`关键字用于指定一个列或者一组列为外键[^1]。当创建一个新的表时可以直接在表结构中加入外键声明;对于已存在的表格,则可以通过`ALTER TABLE`语句添加外键。
#### 使用 `CREATE TABLE` 命令创建新表并设定外键
```sql
create table orders (
order_id int primary key,
customer_id int,
order_date datetime,
constraint fk_customer_order foreign key (customer_id)
references customers(customer_id)
);
```
此段代码展示了如何在一个名为`orders`的新订单表里建立对外部客户表(`customers`)的引用关系,其中`customer_id`作为连接两个实体之间的桥梁[^2]。
#### 对现有表增加外键约束
如果目标是在已有表上追加这种关联性,那么应该采用如下语法:
```sql
alter table orders add constraint fk_customer_order
foreign key (customer_id) references customers(customer_id);
```
上述命令向现有的`orders`表引入了一个新的约束条件——即`customer_id`字段现在被绑定到了另一个数据库对象上的相应属性之上[^3]。
除了简单的参照完整性之外,还可以配置额外的行为规则来处理父记录变动的情况,比如级联操作或是设置为空值等特性。这些选项能够帮助维护更加复杂的数据模型间的一致状态。
#### 配置外键行为规则
为了实现更精细控制,在定义外键的同时可附加一些参数以决定特定事件发生后的动作模式:
- **ON DELETE CASCADE**: 当删除主表中的行时自动移除所有依赖它的子项;
- **ON UPDATE CASCADE**: 更新主键会同步更改相关联的外键值;
- **SET NULL/DEFAULT**: 主表条目消失后将受影响位置清零或赋予默认初始值。
例如下面的例子演示了带有级联更新特性的外键构建方法:
```sql
alter table orders add constraint fk_customer_order
foreign key (customer_id) references customers(customer_id)
on update cascade;
```
这使得每当顾客信息发生变化时,相应的订单也会随之调整其内部链接指向的位置。
阅读全文
相关推荐

















