sqlserver外键约束如何写

1736
2023/10/29 9:40:06
栏目: 云计算
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在SQL Server中,外键约束可以通过以下方式来定义:
1. 创建表时定义外键约束:
在创建表时,可以使用FOREIGN KEY关键字来定义外键约束。语法如下:

CREATE TABLE 表名
(

????列名?数据类型,

????…

????FOREIGN?KEY?(列名)?REFERENCES?关联表名(关联列名) )

示例:

CREATE?TABLE?Orders
(

????OrderID?int?PRIMARY?KEY,

????CustomerID?int,

????OrderDate?date,

????FOREIGN?KEY?(CustomerID)?REFERENCES?Customers(CustomerID) )

2. 使用ALTER TABLE语句添加外键约束:
如果已经创建了表,可以使用ALTER TABLE语句来添加外键约束。语法如下:

ALTER?TABLE?表名
ADD?CONSTRAINT?约束名?FOREIGN?KEY?(列名)?REFERENCES?关联表名(关联列名)

示例:

ALTER?TABLE?Orders
ADD?CONSTRAINT?FK_CustomerID?FOREIGN?KEY?(CustomerID)?REFERENCES?Customers(CustomerID)

3. 设置外键约束的级联操作:
在定义外键约束时,还可以设置级联操作,以指定当主表中的数据发生变化时,从表中的数据应该如何处理。常见的级联操作包括:
- CASCADE:级联更新或删除从表中与主表关联的记录。
- SET NULL:将从表中与主表关联的记录的外键列设置为NULL。
- SET DEFAULT:将从表中与主表关联的记录的外键列设置为默认值。
- NO ACTION:拒绝更新或删除主表中的记录,如果有与之关联的从表记录存在。

在创建或修改外键约束时,可以使用ON UPDATE和ON DELETE子句来指定级联操作。例如:

CREATE?TABLE?Orders
(

????OrderID?int?PRIMARY?KEY,

????CustomerID?int,

????OrderDate?date,

????FOREIGN?KEY?(CustomerID)?REFERENCES?Customers(CustomerID)?ON?DELETE?CASCADE )


ALTER?TABLE?Orders
ADD?CONSTRAINT?FK_CustomerID?FOREIGN?KEY?(CustomerID)?REFERENCES?Customers(CustomerID)?ON?DELETE?CASCADE

以上是SQL Server中定义外键约束的几种常见方式,可以根据实际需要选择适合的方法。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: sqlserver数据库怎么迁移