sql怎么设置外键(sql怎么设置外键约束)

sqlserver中设置外键约束有三种方式:在企业管理器、表、设计表、设置表属性中可以设置约束、在企业管理器、图表、新建图表中设置引用键、设置两个表之间的关系;直接使用transactsql语句。

1所有这三种方法都必须首先创建一个数据表。

1)创建表author:

creatable[dbo].[author](

[id][h3int]notnull,[authorname][char](10)null,[address][char](480)null,[introction][ntext]null

)

2)创建表mybbs:

reatetable[dbo].[mybbs](

[id][h3int]entityid(1,1)notnull,[authorid][h3int]nonnull,[标题][char](40)null,[date_of_creation][datetime]null,[Abstract][char](480)null,[content][ntext]null

)

2设置表mybbs中的autorid为外键,参考表id字段作者,直接使用transactsql语句,流程如下:

1)添加mybbs表的外键约束fk_mybbs_author(autorid),mybbs表中的authorid受表中主键id的限制作者:

begintransaction

altertabledbo.mybbsaddconstraintfk_mybbs_author

外键(已授权)

referencesdbo.author([id])onupdatecascadeondeletecascade

2)删除外键约束fk_mybbs_author:

--altertabledbo.mybbsdropconstraintfk_mybbs_author

--rollback

committransaction

上面的onupdatecascade和ondeletecascade这两个选项表示什么时候以后author表的id字段有删除或更新操作,mybbs表中的id也会被级联删除或更新。
如果未选中,则无法更新或删除与mybbs表关联的作者表中的ID。

扩展信息:

SQL中主键和外键的作用:

1插入非空值时,如果该值在主键表中不存在,则不能进入。

2更新时不能更改为主键表之外的值。

3删除主键表记录时,可以选择级联删除外键记录,也可以在创建外键时拒绝删除。

4更新主键数据时,还有级联更新和拒绝执行的选项。

简而言之,SQL主键和外键充当约束。

外键在sql语句中是怎样定义的?

SQL中编写外键的格式是外键(列名)。
如:createtabletemp(idint,namechar(20),externalkey(id))。

通过使用第一个表的主键值(如果需要,包括复合主键值)将一个表中的值放入第二个表中来表示链接。
此时,第二个表中保存这些值的属性称为外键。
创建外键的前提是目标关系的主键和引用关系的外键必须指定在一个或同一组字段中。

扩展信息:

外键可以保持数据的一致性和完整性,它们的主要目的是控制外键表中存储的数据。
要连接两个表,外键可以仅引用表中的列值或使用空值。
在实际应用中为了便于识别,当主键和对应的外键属于不同关系时,往往会赋予相同的名称。

常常,程序员会发现字段缺失或冗余,或者创建外键后无法添加非限制行(这在特殊情况下是必要的,此时他们不想调整)。
表结构,通过这样做,可以使用约束失效。

sql设置外键

--创建altertableb添加约束fk_id外键(id)引用A(id)--删除altertableb删除约束fk_id

如果在表如果没有数据,你可以直接删除它并重建它......