SQL Server 复合键2025年3月17日 | 阅读 3 分钟 SQL Server 中的复合键是多个列的组合。它用于唯一标识表行。 SQL Server 仅在列组合时保证列的唯一性,如果单独使用这些列,则无法保持唯一性。当键(例如主键、超键或候选键)具有多个列时,它被称为复合键。我们可以在复合键列中使用不同的数据类型,因为在 SQL Server 中创建复合键不需要相同的数据类型。 复合键的语法如下: 什么时候会出现复合键?并非总是在表中有一个可以用作主键的唯一列。在这种情况下,我们组合两个或多个表列,使它们唯一,并将其用作表的主键。列或属性的这种组合称为复合键。 SQL Server 允许我们通过两种方式创建复合键:
使用 CREATE 语句创建复合键SQL Server CREATE 语句定义一个表。 这意味着我们可以在创建表时定义复合键。 以下语句将创建一个名为 Product 的表: 我们看到该语句创建了一个复合主键,其中包含 Name 和 Manufacturer 列。 现在,我们将一些记录插入到此表中,如下所示: 使用 SELECT 语句验证表会显示以下输出: ![]() 让我们再插入两条记录,看看结果。 执行上述语句将返回以下输出: ![]() 我们可以在输出中看到,如果我们尝试添加一个产品名称和一个制造商,而它们是相同的,它将生成一个错误,提示“我们无法在对象 dbo.Product 中输入重复键”。 当我们运行第二个 insert 命令时,它将成功添加到表中。 这是因为我们可以在产品列中放入任意数量的鼠标,但制造商列必须是唯一的。 因此,我们可以得出结论,复合键始终确保具有两个键的表列的唯一性。 使用 ALTER 语句创建复合键ALTER 语句始终用于更改现有表。 为了使用多个属性唯一标识数据库的每个记录,有时需要复合键。 在这种情况下,使用 ALTER TABLE 语句。 语法如下 让我们通过一个例子来理解它。 首先,我们将使用以下语句创建一个表“student”: 现在,我们意识到此表需要复合键。 以下语句将在创建表后添加复合键: 以上语句将在表中成功添加复合键 ck_student。 如何删除现有的复合键?SQL Server 还允许我们从表中删除复合键。 我们可以使用 ALTER 语句来执行此操作。 语法如下: 假设我们要从 Product 表中删除 ck_product 复合键。 我们可以编写如下查询: 执行该语句将从 Product 表中删除复合键“ck_product”。 下一个主题SQL Server 唯一键 |
我们请求您订阅我们的新闻通讯以获取最新更新。