精华内容
下载资源
问答
  • sql删除表的外键约束
    2021-01-20 12:48:10

    展开全部

    删除外键约束的表,首先要删除外键关联,然后才可以删除表。

    如:

    1、创建表62616964757a686964616fe78988e69d8331333337616439author :CREATE TABLE [dbo].[author]

    ([ID] [bigint] NOT NULL PRIMARY KEY,

    [AuthorName] [char] (10) NULL,

    [address] [char] (480) NULL,

    [introduction] [ntext] NULL)

    2、创建myBBS表:CREATE TABLE [dbo].[myBBS] (

    [ID] [bigint] IDENTITY (1, 1) NOT NULL,

    [authorId] [bigint] NOT NULL,

    [Title] [char] (40) NULL,

    [Date_of_Created] [datetime] NULL,

    [Abstract] [char] (480) NULL,

    [Content] [ntext] NULL)

    3、创建外键关系:alter table dbo.mybbs add constraint FK_mybbs_author

    foreign key (authorId)

    references dbo.author([id]) ON UPDATE CASCADE ON DELETE CASCADE

    4、在删除表前,要删除外键,语法如下:alter table dbo.mybbs drop constraint FK_mybbs_author

    5、然后再删除表:drop table [dbo].[myBBS]

    更多相关内容
  • 创建两个TblTestA,TblTestB,删掉TblTestA create table dbo.TblTestA( Id bigint primary key identity(1, 1), name varchar(20) unique, ) create table dbo.TblTestB( Id ...

     创建两个表TblTestA,TblTestB,删掉TblTestA

    
    			create table dbo.TblTestA(
    			Id					bigint			primary key identity(1, 1),
    			name			varchar(20)     unique,
    		    )
    	
    			create table dbo.TblTestB(
    			Id					bigint			primary key identity(1, 1),
    			TestAId				bigint			not null foreign key references 
    			Status				varchar(1),
    	     	)

    报错:it is referenced by a FOREIGN KEY constraint.

    原因:其他表引用该表外键

    解决:

    1.查找该表被其他表引用的外键

      exec  sp_helpconstraint ‘表名’;

    2.找到该关联外键约束表name

       select name
       from  sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id 
       where f.parent_object_id=object_id('外键关联表名' )

     

    3.删掉外键约束

     ALTER TABLE 外键约束表 DROP CONSTRAINT name(上面查出的约束名)

       
    4.删表(可以添加事件)

    BEGIN TRY
        BEGIN TRANSACTION
            ALTER TABLE TblTestB DROP CONSTRAINT FK__TblTestB__TestAI__635CD8E4
            DROP TABLE dbo.TblTestA
        COMMIT TRANSACTION
            PRINT 'commit sucesss'
    END TRY
    BEGIN CATCH
        ROLLBACK TRANSACTION
        PRINT 'rollback sucesss'
    END CATCH
    

     


     

    展开全文
  • SQL Server外键约束

    2022-07-21 09:30:54
    如果删除中的一行或多行,则可以设置以下操作之一ONDELETENOACTIONSQLServer引发错误并回滚父中行的删除操作。更新父中行的操作如果更新父中的一行或多行,则可以设置以下操作之一...

     SQL Server外键约束简介

    外键是一个表中的一列或一组列,它唯一地标识另一个表的行。 vendor_groups 和v endor 表,它们的结构如下:

    CREATE TABLE procurement.vendor_groups (

    group_id INT IDENTITY PRIMARY KEY,

    group_name VARCHAR (100) NOT NULL

     );

    CREATE TABLE procurement.vendors (

     vendor_id INT IDENTITY PRIMARY KEY,

     vendor_name VARCHAR(100) NOT NULL,

    group_id INT NOT NULL,

     );

    每个供应商属于供应商组,每个供应商组可能有零个或多个供应商。 vendor_groups 和 vendors 表之 间的关系是一对多的。 对于 vendors 表中的每一行,始终可以在 vendor_groups 表中找到相应的行。

    但是,如果使用当前表创建方式,可以在 vendors 表中插入一行而不在 vendor_groups 表中显示相应 的行。 还可以删除 vendor_groups 表中的行,而无需更新或删除 vendors 表中导致 vendors 表中存在孤立的 行。 要强制执行 vendor_groups 和 vendors 表中的数据之间的链接,需要在 vendors 表中建立外键。 要创建外键,请使用 FOREIGN KEY 约束。 以下语句删除 vendors 表并使用 FOREIGN KEY 约束重新创建它:

    DROP TABLE vendors; CREATE TABLE procurement.vendors (

    vendor_id INT IDENTITY PRIMARY KEY,

    vendor_name VARCHAR(100) NOT NULL,

    group_id INT NOT NULL,

    CONSTRAINT fk_group FOREIGN KEY (group_id)

     REFERENCES procurement.vendor_groups(group_id) );

    现在, vendor_groups 表称为父表,该表是外键约束引用的表。 vendors 表称为子表,该表是应用外 键约束的表。 在上面的语句中,以下子句创建名为 fk_grou p的 FOREIGN KEY 约束,该约束将 vendors 表中的 group_id 链接到 vendor_groups 表中的 group_id :

    CONSTRAINT fk_group FOREIGN KEY (group_id) REFERENCES

    procurement.vendor_groups(group_id)

    SQL

    FOREIGN KEY约束语法 创建 FOREIGN KEY 约束的一般语法如下:

    CONSTRAINT fk_constraint_name

    FOREIGN KEY (column_1, column2,...)

    REFERENCES parent_table_name(column1,column2,..)

    下面来详细学习一下这种语法。 首先,在 CONSTRAINT 关键字后指定 FOREIGN KEY 约束名称。约束名称是可选的(不用指定也可以),因 此可以按如下方式定义 FOREIGN KEY 约束:

    FOREIGN KEY (column_1, column2,...)

     REFERENCES parent_table_name(column1,column2,..)

    在这种情况下,SQL Server将自动为 FOREIGN KEY 约束生成名称。 其次,在 FOREIGN KEY 关键字后面指定括号括起来的逗号分隔外键列的列表。 第三,指定外键引用的父表的名称以及与子表中的列具有链接的逗号分隔列的列表。 FOREIGN KEY约束示例 首先,在 vendor_groups 表中插入一些行:

    INSERT INTO procurement.vendor_groups(group_name)

    VALUES('第三方供应商'),

    ('优品供应商'),

    ('一次性供应商');

    其次,将具有供应商组的新供应商插入 vendors 表:

    INSERT INTO procurement.vendors(vendor_name, group_id)

     VALUES('ABC Corp', 1);

    上面语句按预期工作。 第三,尝试插入 vendor_groups 表中不存在供应商组的新供应商:

    INSERT INTO procurement.vendors(vendor_name, group_id)

    VALUES('XYZ Corp',4);

    SQL Server发出以下错误:

    The INSERT statement conflicted with the FOREIGN KEY constraint "fk_group".

    The conflict occurred in database "BikeStores", table

     "procurement.vendor_groups", column 'group_id'.

    在此示例中,由于 FOREIGN KEY 约束, vendor_groups 表中 group_id 列的值为 4 的行不存在。因此 SQL Server拒绝插入并发出错误。

    参考操作 外键约束确保了引用完整性。如果父表中存在相应的行,则只能在子表中插入一行。此外,外键约束用 于在更新或删除父表中的行时定义引用操作,如下所示:

    FOREIGN KEY (foreign_key_columns)

    REFERENCES parent_table(parent_key_columns)

    ON UPDATE action

    ON DELETE action;

    ON UPDATE 和 ON DELETE 指定在更新和删除父表中的行时将执行的操作。 以下是允许的操作: NO ACTION , CASCADE , SET NULL 和 SET DEFAULT 。

    删除父表中行的操作

    如果删除父表中的一行或多行,则可以设置以下操作之一: ON DELETE NO ACTION :SQL Server引发错误并回滚父表中行的删除操作。 ON DELETE CASCADE :SQL Server删除子表中与从父表中删除的行相对应的行。 ON DELETE SET NULL :如果删除父表中的相应行,则SQL Server将子表中的行设置为 NULL 。 要 执行此操作,外键列必须可为 NULL 。 ON DELETE SET DEFAULT :如果删除父表中的相应行,SQL Server会将子表中的行设置为其默认 值。 要执行此操作,外键列必须具 有默认定义。 请注意,如果未指定默认值,则可空列的默认值为 NULL 。 默认情况下,如果未明确指定任何操作,则SQL Server将应用 ON DELETE NO ACTION 。

    更新父表中行的操作 如果更新父表中的一行或多行,则可以设置以下操作之一: ON UPDATE NO ACTION :SQL Server引发错误并回滚父表中行的更新操作。 ON UPDATE CASCADE :当父表中的行更新时,SQL Server更新子表中的相应行。 ON UPDATE SET NULL :当更新父表中的相应行时,SQL Server将子表中的行设置为NULL。 请注 意,外键列必须可以为空以便执行 此操作。 ON UPDATE SET DEFAULT :SQL Server为子表中的行设置默认值,这些行更新了父表中的相应行。

    展开全文
  • 在MySQL中删除一张或一条数据的时候,出现 [Err] 1451 -Cannot deleteorupdatea parent row: aforeignkeyconstraintfails (...) 这是因为MySQL中设置了foreign key关联,造成无法更新或删除数据。可以通过设置...
  • SQL sever 删除外键约束

    千次阅读 2019-10-23 08:30:45
    在进行数据库插入操作时,遇到了问题,考虑先删除外键 法一、 法二、用SQL(找到外键的名称) 大功告成!

    在这里插入图片描述
    在进行数据库插入操作时,遇到了问题,考虑先删除外键

    法一、在这里插入图片描述

    在这里插入图片描述

    法二、用SQL(找到外键的名称)
    在这里插入图片描述

    在这里插入图片描述
    大功告成!
    在这里插入图片描述

    展开全文
  • 数据sql设置外键约束

    2022-03-21 17:34:04
    :定义了外键 外键的取值要么取父中字段对应的值,要么取NULL值 严重受限于父:被引用的字段要具有唯一性(绝大多数都是用的父的主键) 理论上是可以一张表里的一个字段引用另一个字段,但一般...
  • 删除外键 语法:alter table 表名 drop constraint 外键约束名 如: alter table Stu_PkFk_Sc drop constraint FK_s alter table Stu_PkFk_SC drop constraint FK_c –添加外键 语法:alter table 表名 add ...
  • sql外键约束

    2022-01-13 11:50:56
    sql外键约束对于已经存在的字段添加外键约束在创建数据时设置外键约束删除外键约束 外键约束:对外键字段的值进行更新和插入时会和引用中字段的数据进行验证,数据如果不合法则更新和插入会失败,保证数据的有效...
  • SQL删除外键约束

    万次阅读 2019-06-14 02:18:23
    2019独角兽企业重金招聘Python工程师标准>>> ...使用如下SQL语句查询出中外键约束名称: ... 外键约束名       转载于:https://my.oschina.net/weisenz/blog/200655
  • 删除表不是特别常用,特别是对于存在外键关联的删除更得小心。但是在开发过程中,发现Schema设计的有问题而且要删除现有的数据库中所有的来重新创建也是常有的事情;另外在测试的时候,也有需要重新创建数据库...
  • SQL编程:外键约束

    千次阅读 2020-11-29 20:50:20
    外键约束 foreign key约束用于预防破坏之间连接的行为,也能防止非法数据插入外键列,因为它必须是它指向的那个中的值之一。【主要目的是确保的数据的完整性,唯一性】 主表删除某条记录时,从中与之对应...
  • SQL--外键约束

    2021-10-28 11:32:42
    外键约束 标志:FOREIGN KEY t_student Sno 主键 (父亲) t_department Sno 外键 (孩子) ALTER TABLE [dbo].[t_department] WITH CHECK ADD CONSTRAINT [FK_t_SD_Sno] FOREIGN KEY([Sno]) REFERENCES [dbo]....
  • SQL Sever 小技巧之解决外键约束(禁用、启用外键约束) 因为有外键约束的存在,在从中,修改主不存在的数据是不合法的;在主中,删除中已存在的主信息也是不合法的。 当然方法总比困难多,以下两种方法各有...
  • sql 外键约束

    2021-07-14 23:48:28
    创建有外键约束的数据库 首先创建父 这里用的学生信心录入为例子 -- 创建父:班级 create table t_class( cno int (4) primary key auto_increment, cname varchar(10) not null, room char(4) ) 再...
  • SQL Server 2012 外键约束(定义外键、删除外键)

    万次阅读 多人点赞 2019-04-21 20:00:26
    文章目录准备知识定义外键使用SSMS工具定义外键使用SQL方式定义外键删除外键使用SSMS工具删除外键方式一:在对象资源管理器中删除主键方式二:在设计器中删除主键使用SQL方式删除外键 准备知识     外键...
  • --先删掉约束 ALTER TABLE 表名1 DROP CONSTRAINT 约束名 --再重新添加约束 ALTER TABLE 表名1 ADD CONSTRAINT 约束名 FOREIGN KEY(外键列名1,外键列名2) REFERENCES 表名2(列名1,列名2) ON UPDATE CASCADE ON ...
  • SQL Server 临时禁用和启用所有外键约束
  • SQL Server的主键与外键约束

    千次阅读 2022-04-20 20:27:05
    SQL Server的主键与外键约束SQL Server有许多的重要知识,开始也说过许多的SQL知识了。SQL Server中的约束也是一个重要性的知识,下面我来说说关于SQL Server约束的知识。 首先我们来说说SQL sever的主键约束:主键...
  • Mysql外键约束怎么删除

    千次阅读 2021-05-03 17:01:42
    记录一下碰到的问题。由于我是使用PowerDesigner来建mysql物理...它不让我删除,说存在外键约束删除会破坏他们的结构。 外键约束:让数据库自己通过外键来保证数据的完整性和一致性,让他们的关联性更强。 虽然它是有
  • SQL-基础 约束(添加-删除外键)

    千次阅读 2022-03-13 21:19:33
    分类:非空约束(not null),唯一约束(unique),主键约束(primary key),默认约束(default),检查约束(check),外键约束(foreign key)。 二.运用 创建约束表:(也可以直接在创建新表目录,选择创建约束,不需要写...
  • mysql删除外键约束

    2022-05-17 19:02:51
    1.通过数据库创建的语句查看外键约束名 SHOW CREATE TABLE movie -- 建表语句如下 CREATE TABLE `movie` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) DEFAULT NULL, `filename` VARCHAR(255...
  • 问题:”有两张,其中A是主B是外键关联。将子B的数据清空之后,再去清空主A。出现如下报错: 解决办法: 1)删除掉外键 ...3)重新建立外键约束 ALTER TABLE Table_B ADD CO...
  • sql外键约束,多查询,级联删除,子查询
  • 删除外键约束,首先要删除外键关联,然后才可以删除表。如:1、创建author :CREATE TABLE [dbo].[author] ([ID] [bigint] NOT NULL PRIMARY KEY,[AuthorName] [char] (10) NULL,[address] [char] (480) NULL, ...
  • SQL外键约束

    千次阅读 2020-07-25 14:47:23
    SQL外键约束外键约束添加外键约束删除外键约束 外键约束 一个中的 FOREIGN KEY(外键) 指向另一个中的 PRIMARY KEY(主键) FOREIGN KEY 约束用于预防破坏之间连接的动作 FOREIGN KEY 约束也能防止非法数据...
  • SQL添加外键约束

    万次阅读 多人点赞 2019-03-14 11:05:42
    --1,sql语句创建的同时添加外键约束 CREATE TABLE tb_UserAndRole --用户角色 ( ID INT PRIMARY KEY IDENTITY(1,1), UserID INT NOT NULL,--用户ID RoleID INT NOT NULL,--角色ID foreign key(UserID) ...
  • 外键约束涉及到父(主)和子(副),一个的记录被另外一个引用 举例说明:假设现在我们有两个,班级和学生。 班级的创建如下: create table classes( id int primary key, name ...
  • 如在管理系统中,人员和部门信息,在生成一个人员信息时,人员的部门编码必须存在于部门中,当该部门名称等信息发生变化时,人员的部门信息也需要同步更新,在这种场景下,显然使用外键关联以及联级更新/删除就会...
  • 展开全部1、创建主键,test_class,并建立class_id字段为主键;create table test_class(class_id number, class_name varchar2(20));-- Create/Recreate indexesalter table TEST_CLASSadd constraint P_CLASS_ID...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 78,920
精华内容 31,568
关键字:

sql删除表的外键约束