sql server2008如何创建外键

以前创建数据库时就是有主键的创建了主键,但是表之间的关系没有联系,要建数据库关系图只有主键没有外键时不行的。

建外键的前提是此外键必须是另外一个表的主键。建外键的步骤:

第一步打开要建外键表的设计器,右击选择“关系”。

然后弹出“外键关系”窗体,我们选择“添加”,然后点击“表和列规范”后面的小按钮,

就会弹出另外一个窗体让我们选择主键表和列,选好之后点击确定。

然后我们展开INSERT和UPDATE规范,在更新规则和删除规则有四个选项,分别是“不执行任何操作”、“级联”、“设置为NULL”、“设置默认值”。

默认的不执行任何操作。如果是“不执行任何操作”,当我们删除或更新主键表的数据时,会告诉用户不能执行删除或更新该操作。

“级联”的意思是当我们删除或更新主键表的数据时,会删除或更新外键表中所涉及的相关数据的所有行。

“设置Null”的意思是当我们删除或更新主键表的数据时,外键表中的外键列的值会设为Null,但前提是该列允许为空。

“设置默认值”的意思是如果我们将外键列定义了默认值,当我们删除或更新主键表的数据时,外键表中的外键列的值设为定义的默认值。

当然我们可以用代码创建,当我们在创建数据库表T——Card时只要加上一句话就OK啦,“Foreign key (studentNo) references T_Student(studentNo)"。如果我们已经创建了改表,那如何用代码实现了,这也很简单也就一句话“ add constraint CMPKey(外键名) foreign key(studentNo) references T_Student(studentNo)”。

时间: 2024-10-01 17:24:56

sql server2008如何创建外键的相关文章

在SQL Server 中创建外键

建外键的前提是此外键必须是另外一个表的主键. 建外键的步骤: 第一步打开要建外键表的设计器,右击选择“关系”. 然后弹出“外键关系”窗体,我们选择“添加”,然后点击“表和列规范”后面的小按钮, 就会弹出另外一个窗体让我们选择主键表和列,选好之后点击确定. 然后我们展开INSERT和UPDATE规范,在更新规则和删除规则有四个选项,分别是“不执行任何操作”.“级联”.“设置为NULL”.“设置默认值”. 默认的不执行任何操作.如果是“不执行任何操作”,当我们删除或更新主键表的数据时,会告诉用户不能

sql server创建外键,子母表,级联删除。

级联删除. 最近建一个合同关系,在原有的资产平台上添加维保合同关系,维保合同问题, 需要在后面添加资产的维保合同,使用ef,该添加的冗余字段都已经添加上了,现在做这个,删除的时候只删了主表提示出问题,原来我没有在外键上选上  “级联删除”  属性 最终出现的结果就是要手动删了,这种做法是不对的!

oracle 建表创建外键

1.默认的创建方式 在删除被参照的数据时,将无法删除. Sql代码   CREATE TABLE T_INVOICE (ID NUMBER(10) NOT NULL, INVOICE_NO VARCHAR2(30) NOT NULL, CONSTRAINT PK_INVOICE_ID PRIMARY KEY(ID)); CREATE TABLE T_INVOICE_DETAIL (ID NUMBER(10) NOT NULL, AMOUNT NUMBER(10,3), PIECE NUMBER(

如何取消hibernate hbm2ddl.auto 自动创建外键

利用hbm2ddl自动创建数据库表时,会同时创建表的外键关联.配置如下. <prop key="hibernate.hbm2ddl.auto">create</prop> 要取消外键的自动创建,需要配置foreign-key="none". hibernate的更新log有如下说明: Changes in version 2.1.9 (xx.x.xxxx) ------------------------------------ * fore

【错误笔记——MySQL】创建外键1452错误

记录一个创建外键时的错误1452 两个表 login登录表 bus商家表 登录表中的bus_id要与商家表中的id建立外键,但是怎么都不成功,1452错误 后来发现是因为 把所有的值为空后,成功建立外键

SQL入门经典(五) 之键和约束

这一篇博客主要讲键的创建,约束的创建.修改对象和删除对象. 主键:主键是每行的唯一标识符,必须包含唯一值(因此不能为NULL).由于主键在关系中数据库的重要性,因此它是所有键和约束中最重要的.一个表最多可以有一个主键.很少不需要主键的表.主键声明具有唯一性.常用有identity自动增长值和GUID.主键是唯一标识值.如果客户操作一个没有主键的表.连续添加2次一样数据.你怎么删除.删除总是2条一条删除.我们接着上篇博客. 下面创建一个主键表: USE panda GO --转为panda数据库操

sql server2008笔记

系统表和临时表 在sqlserver2008中数据表分为普通表,分区表,系统表和临时表 (1)系统表 在创建好的每个数据库中,系统都会自动添加一张系统表,该表存储了与系统有关的各种信息 例如sql server2008服务器配置,数据库设置,用户和表对象的描述信息 通常只有DBO权限的用户才能对该表进行操作 (2)临时表 临时表就是临时创建,不能永久保存,临时表分为两种,本地临时表和全局临时表 本地临时表的表名通常带有#标识符,它只对当前用户可见,当用户断开sql server2008 实例连接

SQL Server2008创建约束图解 转

转自 http://www.cnblogs.com/longhs/p/3670307.html SQLServer 中有五种约束, Primary Key 约束. Foreign Key 约束. Unique 约束. Default 约束和 Check 约束,今天使用SQL Server2008 来演示下这几种约束的创建和使用的方法. 1 . Primary Key 约束 在表中常有一列或多列的组合,其值能唯一标识表中的每一行. 这样的一列或多列成为表的主键(PrimaryKey).一个表只能有

关于创建主键和索引的关系一个小小测试

创建主键时,所对应的列如果没有索引,数据库默认会自动创建一个索引:如果对于列有索引,那么创建主键不会再创建索引.这里要注意,列值必须满足主键的要求(唯一,非空),简单测试如下: SQL> create table wxlun_pri(a number); Table created. SQL> alter table wxlun_pri add constraint PRIMARY_KEY_REPLY primary key (a);     ------创建主键约束 Table altere