sql server怎样删除外键约束?

Posted

tags:

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

参考技术A

用这个跟:alter table 表名称 drop constraint 外键的名称

使用如下SQL语句查询出表中外键约束名称:

1 select name  2 from  sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id 3 where f.parent_object_id=object_id('表名')

执行如下SQL语句删除即可。

1 alter table 表名 drop constraint 外键约束名

扩展资料:

注意事项

键约束可双击关系线添加外键约束,外键约束有四种不同的选项:CASCADE, SET NULL, NO ACTION, RESTRICT。

1、CASCADE : 从父表中删除或更新对应的行,同时自动的删除或更新自表中匹配的行。[ON DELETE CANSCADE和ON UPDATE CANSCADE都被InnoDB所支持。

2、SET NULL: 从父表中删除或更新对应的行,同时将子表中的外键列设为空。[注意,这些在外键列没有被设为NOT NULL时才有效。ON DELETE SET NULL和ON UPDATE SET SET NULL都被InnoDB所支持。

3、NO ACTION: InnoDB拒绝删除或者更新父表。

4、RESTRICT: 拒绝删除或者更新父表。

SQL Server(第一章) 创建表 删除表 创建主键约束唯一约束外键约束CHECK约束默认约束


1.Employees员工表
/**
创建Employees员工表
**/
USE TSQL2012
IF OBJECT_ID(dbo.Employees,U) IS NOT NULL
DROP TABLE dbo.Employees

CREATE TABLE dbo.Employees
(
    empid    INT    NOT NULL,
    firstname    VARCHAR(30)    NOT NULL,
    lastname    VARCHAR(30)    NOT NULL,
    hiredate    DATE    NOT NULL,
    mgrid    INT    NULL,
    ssn        VARCHAR(20)    NOT NULL,
    salary    MONEY    NOT NULL
)
/**
添加主键约束
**/
ALTER TABLE dbo.Employees ADD CONSTRAINT PK_Employees
PRIMARY KEY(empid);
/**
添加唯一约束
**/
ALTER TABLE dbo.Employees ADD CONSTRAINT UNQ_Employees_ssn
UNIQUE(ssn);
/**
添加外键约束
**/
ALTER TABLE dbo.Employees ADD CONSTRAINT FK_Employees_Employees
FOREIGN KEY(mgrid) REFERENCES dbo.Employees(empid);
/**
添加CHECK约束
**/
ALTER TABLE dbo.Employees ADD CONSTRAINT CHK_Employees_salary
CHECK(salary>0.00)
/**
删除CHECK约束
**/
ALTER TABLE dbo.Employees DROP CONSTRAINT CHK_Employees_salary

 

2.Orders订单表

/**
    创建Orders订单表
**/
USE TSQL2012

IF OBJECT_ID(dbo.Orders,U) IS NOT NULL DROP TABLE dbo.Orders;

CREATE TABLE dbo.Orders
(
    orderid    INT    NOT NULL,
    empid    INT NOT NULL,
    custid    VARCHAR(10) NOT NULL,
    orderts    DATETIME2    NOT NULL,
    qty    INT    NOT NULL,
    CONSTRAINT PK_Orders PRIMARY KEY(orderid)
);
/**
添加主键约束
**/
ALTER TABLE dbo.Orders ADD CONSTRAINT FK_Orders_Employees FOREIGN KEY(empid)
REFERENCES dbo.Employees(empid);
/**
添加默认约束
**/
ALTER TABLE dbo.Orders ADD CONSTRAINT DFT_Orders_orderts
DEFAULT(SYSDATETIME()) FOR orderts;

/**
删除CHECK约束
**/
ALTER TABLE dbo.Employees DROP CONSTRAINT DFT_Orders_orderts

 


以上是关于sql server怎样删除外键约束?的主要内容,如果未能解决你的问题,请参考以下文章

Sql server怎样创建主外键关系

Sql server怎样创建主外键关系

sql server解决无法删除修改拥有外键约束的表或表的记录字段

如果 SQL Server 中存在外键约束,如何删除表?

sqlserver删除外键关系

SQL Server(第一章) 创建表 删除表 创建主键约束唯一约束外键约束CHECK约束默认约束