溫馨提示×

sqlserver外鍵約束如何寫

小億
350
2023-11-15 09:40:06
欄目: 云計算

在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中定義外鍵約束的幾種常見方式,可以根據實際需要選擇適合的方法。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女