详解如何定义SQL Server外关键字约束

SQL Server外关键字约束的重要性不言而喻,下面就让我们一起来了解一下应该如何定义SQL Server外关键字约束。
  SQL Server外关键字约束定义了表之间的关系。当一个表中的一个列或多个列的组合和其它表中的主关键字定义相同时,就可以将这些列或列的组合定义为外关键字,并设定它适合哪个表中哪些列相关联。这样,当在定义SQL Server主关键字约束的表中更新列值,时其它表中有与之相关联的外关键字约束的表中的外关键字列也将被相应地做相同的更新。外关键字约束的作用还体现在,当向含有外关键字的表插入数据时,如果与之相关联的表的列中无与插入的外关键字列值相同的值时,系统会拒绝插入数据。与主关键字相同,不能使用一个定义为TEXT 或IMAGE 数据类型的列创建外关键字。外关键字最多由16 个列组成。
  定义外关键字约束的语法如下:
  以下是代码片段:
  CONSTRAINT constraint_name

  FOREIGN KEY (column_name1[, column_name2,…,column_name16])

  REFERENCES ref_table [ (ref_column1[,ref_column2,…, ref_column16] )]

  [ ON DELETE { CASCADE | NO ACTION } ]

  [ ON UPDATE { CASCADE | NO ACTION } ] ]

  [ NOT FOR REPLICATION ]
  各参数说明如下:
  REFERENCES
  指定要建立关联的表的信息。
  ref_table
  指定要建立关联的表的名称。
  ref_column
  指定要建立关联的表中的相关列的名称。
  以下是代码片段:
  ON DELETE {CASCADE | NO ACTION}
  指定在删除表中数据时,对关联表所做的相关操作。在子表中有数据行与父表中的对应数据行相关联的情况下,如果指定了值CASCADE,则在删除父表数据行时会将子表中对应的数据行删除;如果指定的是NO ACTION,则SQL Server 会产生一个错误,并将父表中的删除操作回滚。NO ACTION 是缺省值。
  以下是代码片段:
  ON UPDATE {CASCADE | NO ACTION}
  指定在更新表中数据时,对关联表所做的相关操作。在子表中有数据行与父表中的对应数据行相关联的情况下,如果指定了值CASCADE,则在更新父表数据行时会将子表中对应的数据行更新;如果指定的是NO ACTION,则SQL Server 会产生一个错误,并将父表中的更新操作回滚。NO ACTION 是缺省值。
  以下是代码片段:
  NOT FOR REPLICATION
  指定列的外关键字约束在把从其它表中复制的数据插入到表中时不发生作用。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值