在MSSQL中,外键是一种关联的约束,用于维护表与表之间的联系。通过添加外键,我们可以在不同的表之间进行连接,以实现更完整的数据管理。在本文中,我们将介绍如何在MSSQL中新建外键。
1. 准备工作
在创建外键之前,我们需要确保以下条件已满足:
1.1 存在两个不同的表
外键建立的必要条件之一是存在两个不同的表。因此,在创建外键之前,我们需要确保所需的两个表已经存在。
1.2 存在主键
一个主键是一个唯一的标识符,它被用来唯一地标识一个表中的每一条记录。如果你要在一张表中定义外键,则该表必须至少有一个主键。
如果在表定义期间没有定义主键,则可以通过以下方式添加主键:
ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY (字段名)
其中,表名代表要添加主键的表的名称,约束名代表要创建的主键名称,字段名代表要创建主键的列名。
1.3 有权限
如果您要创建外键,则需要对要创建外键的表必须具有 ALTER 表权限 和 REFERENCES表权限 。
2. 创建外键
有了上述准备工作之后,我们可以开始创建外键,步骤如下:
2.1 选择相关列
在新建外键时,首先需要选择参考表的列与该表中该列的关系。
在下面的示例中,我们想要为“Orders”表创建外键,以便它可以引用“Customer”表中的“CustomerID”列。因此,我们需要在“Orders”表中选择一个列,该列将被用作外键。
ALTER TABLE Orders
ADD CONSTRAINT FK_Orders_Customers
FOREIGN KEY (CustomerID) --选择外键的列,即参考表的列
REFERENCES Customers(CustomerID); --设置参考 当前表=Customers
其中,ALTER TABLE用于指定要添加外键的表。在此之后,我们用 ADD CONSTRAINT 命令添加外键,并为该外键命名(在此示例中,我们为外键命名为“FK_Orders_Customers”)。接下来,我们指定了 FOREIGN KEY,它将会引用其他表中的某个列(在这个例子中是“CustomerID”),以便创建外键。
在这个例子中,我们设置参考表为“Customers”,它的“CustomerID”列将与“Orders”表中的“CustomerID”列建立联系。这意味着,只要在“Orders”表中创建的任何行都会与“Customer”表中的“CustomerID”列中的值所对应的行建立联系。
2.2 指定外键规则
在创建外键时,您可以选择要使用的外键约束动作。可以使用以下命令来指定外键规则:
ALTER TABLE Orders
ADD CONSTRAINT FK_Orders_Customers
FOREIGN KEY (CustomerID)
REFERENCES Customers(CustomerID)
ON DELETE CASCADE
ON UPDATE CASCADE;
在这个示例中,我们使用 ON DELETE 和 ON UPDATE 子句,以指定如何处理与外键关联的行。在这个例子中,我们指定了“CASCADE"选项,通过它,当与外键相关的行在主表中进行修改或删除时,将相应地修改或删除其相关的外键行。
2.3 查看创建的外键
在创建外键之后,您可以使用以下命令来查看表中添加的外键:
EXEC sp_fkeys 'Orders'
这个命令会返回与“Orders”表相关联的所有外键的详细信息,包括外键名称,参考表的名称和参考列的名称。
3. 总结
在MSSQL中,使用外键是一种有效的方法来维护表与表之间的关系。通过遵循上述步骤,可以轻松地创建外键,并使用外键保持不同表之间的联系。