SQL Server外键约束设置教程:步骤详解与操作技巧

创始人
2024-12-17 21:56:12
0 次浏览
0 评论

sqlserver如何添加外键

在使用SQLServer创建数据表时,我们经常需要设置表与表之间的外键约束。
下面就和大家分享一下。

工具/材料

sqlserver

首先我们创建两个表,如下图所示,班级表和成绩表

然后点击右键-点击类表,在弹出的菜单中选择关系选项,如下图

然后,在弹出的表和关系界面中设置对应的外键字段,如下显示下图中

最后我们可以看到左侧的外键约束关系如下图

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

sqlserver中设置外键要求有三种方式:设置业务、设置表、设置可设计、设置表属性、设置约束、设置引用键;它直接使用transactsql。

1.

1)创建表author:

creatable[dbo].[author](

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

2)创建表mybbs:

可重置[dbo].[mybbs](

[id][h3in]实体id(1,1)notnull,[authorid][h3int]notnull,[title][char](40)null,[date_of_created][datetime]null,[abstract][char](480)null,[content][ntext]null

2.并使用transactsql语句,流程如下:

1)添加外键约束fk_mybbs_author表mybbs(authorid),author表中的mybbs受author表中第一个keyid约束:

principitransaction

altertabledbo.mybbsaddconstraintfk_mybbs_author

foreignkey(authorid

referencesdbo.author([id])onupdatecascadeondeletecascade

2)根据需要删除外键fk_mybbs_author:

--altertabledbo.mybbsdropconstraintfk_mybbs_author

--rollback

Commission

上面的onupdatecascades和ondeletecascades两个选项指示该字段何时今后板子的作者会进行删除或更新操作,即在mybbe板子中也会级联删除或更新。
如果不选,则无法在链接到mybbs版块的作者版块上更新或删除。

扩展信息:

SQL中主键和外键的作用:

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

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

最后,SQL主键和外键作为约束。

sql用命令创建主键与外键。

如何在SQL中创建主键和外键约束:--创建表时,可以为字段添加约束。
createtableStudent(StudentNointPRIMARYKEYIDENTITY(1,1),--添加主键约束和标识列属性(两者组成一个实体。
)sincerity)StudentNamenvarchar(15)notnull,--没有“notnull”的空添加约束为不是默认值可能为空。
StudentSchooltext(20)FOREIGNKEYREFERENCESSchoolTable(SchoolName),--添加外键约束,格式:FOREIGNKEYREFERENCES相关表名(字段名)StudentAgeintDEFAULT((0)),--添加默认值约束StudentSexnvarchar(2)CHECK(StudentSex=N'male'或学生性别=N'female')--添加检查约束,格式:check(条件表达式))--如果建表后添加约束,格式如下:--主键:可更改的表名addconstraintPK_字段名--"PK”是主键的缩写,字段名称是“PK_word”,即创建主键的字段名称。
“段名称”是约束名称。
主键(字段名)--字段名同上--唯一约束:可变表名addconstraintUQ_字段名unique(字段名)--外键约束:可变表名addconstraintFK_字段名--“FK”外键的缩写(字段名)指的是关联表名(关联字段名)。
请参阅AaddconstraintFK_Bforeignkey(ticket_no)reference了解“关联表名称”和“关联字段名称”可变表。
s表B(ticket_no)altertable表AaddconstraintFK_Cforeignkey(person_no)references表C(person_no)altertable分数表addconstraintFK_StudentNoforeignkey(StudentNo)referencesStudent(StudentNo)ONUPDATECASCADEONDELETECASCADE级联更新、级联删除、基表当删除Student时,分数表中所有学生成绩被删除了。
--约束检查:可更改的表名addconstraintCK_field名称检查(条件表达式)--条件表达式的条件与关系运算符连接。
--默认约束:可变表名addconstraintDF_fieldnamedefault'default'字段名--'default'是您想要通过删除'for'创建的值。
约束:altertable表名dropconstraint约束名称-约束名称是先前创建的约束的名称。
示例:PK_字段-注意:建表时一旦创建了约束,就不能通过命令删除。
-只能从“企业管理器”中删除引用:http://www.studyofnet.com/news/92.html希望上述答案有所帮助。
文章标签:
SQLServer 外键
热门文章
1
SQL2000数据库备份压缩技巧:优化空... 怎么将SQL2000中的较大的备份数据库压缩变小更改数据库属性-选项-恢复模型很...

2
高效掌握:CMD命令轻松启动、关闭及登录... 如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...

3
SQL字符串处理技巧:单引号使用与转义标... SQL语句中,字符串类型的值均使用什么符号标明?单引号如果字符串内有单引号,请小...

4
Windows环境下Redis安装指南与... redis安装windowsredis基本简介与安装安装Redis首先需要获取安...

5
深度解析:Redis性能优势与局限性,助... redis有哪些优缺点?Redis的全称是RemoteDictionary.Se...

6
深入解析:MySQL数据库的特性与应用 mysql是什么MySQL是一个关系数据库管理系统。MySQL是一个开源关系数据...

7
MySQL命令行操作指南:轻松启动和登录... 用命令行方式启动和登录mysql服务的方法1.启动MySQL服务1打开命令行窗口...

8
Linux Redis后台启动教程:配置... linux怎么启动redis1、首先,为了管理方便,将Redis文件中的conf...

9
MySQL浮点数与Decimal类型详解... MySQL中的float和decimal类型有什么区别小数类型可以准确地表示非常...

10
C语言实现输入10个整数并找出最大最小值... C语言从键盘输入任意的10个整数,从中找出最大值和最小值并输出代码:#inclu...