sql server如何添加外键

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server如何添加外键相关的知识,希望对你有一定的参考价值。

参考技术A

我们使用sql server创建数据表的时候,经常需要建立表之间的外键约束关系,那么如何添加外键呢?下面我给大家分享一下。

工具/材料

sql server

    01

    首先我们先来建立两个表,如下图所示,班级表和年级表

    02

    然后右键单击班级表,在弹出的菜单中选择关系选项,如下图所示

    03

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

    04

    最后我们就可以在左侧看见外键约束关系了,如下图所示

SQL Server 如何添加删除外键主键,以及更新自增属性

1.添加删除主键和外键

例如:

image

image

image

-----删除主键约束
DECLARE @NAME SYSNAME
DECLARE @TB_NAME SYSNAME
SET @TB_NAME = \'Date\'
SELECT TOP 1  @NAME=NAME FROM SYS.OBJECTS WITH(NOLOCK)
WHERE TYPE_DESC =\'PRIMARY_KEY_CONSTRAINT\' AND PARENT_OBJECT_ID = (
    SELECT OBJECT_ID
    FROM SYS.OBJECTS WITH(NOLOCK)
    WHERE NAME = @TB_NAME )
SELECT @NAME as PK
DECLARE @ALTERSQL NVARCHAR(MAX)
SET @ALTERSQL=N\'ALTER TABLE \'+@TB_NAME+\'
DROP CONSTRAINT \'+@NAME+\'\'
EXEC SP_EXECUTESQL @ALTERSQL

----添加主键约束
alter table Date add constraint PK_Date primary key(ID)

----设置外键约束的SQL语句:
alter table student add constraint FK_student_classes foreign key(cla_id)  references classes(ID)

----删除外键约束
alter table student drop constraint FK_student_classes

 

2.自增属性的更新

------如果仅仅是指定值插入,可用以下语句,临时取消

SET IDENTITY_INSERT classes ON
INSERT INTO classes (ID,Name) VALUES(7,\'测试1\')
SET IDENTITY_INSERT [classes] OFF

-----新增一列,删除自增列,修改列名

alter table classes add ID_Temp int
update a set ID_Temp=ID

alter table classes drop column ID
exec sp_rename \'ID_Temp\', \'ID\', \'column\'

--------通过修改系统关于该表的列属性,该方法使用不当将可能引起其它不可预料的错误(未操作成功)

sp_configure \'allow update\',1
reconfigure with override
go
update syscolumns set colstat=0 where colstat=1 and id=object_id(\'tablename\')
go
sp_configure \'allow update\',0
reconfigure with override

以上是关于sql server如何添加外键的主要内容,如果未能解决你的问题,请参考以下文章

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

数据库开发基础-SQl Server 主键外键子查询(嵌套查询)

在MySQL中如何设置主键和外键

请问SQL server 中的主键和外键的作用

怎么在SQL中设置外键

sql中啥叫主键表,啥叫外键表