【问题标题】:Drop table with foreign key使用外键删除表
【发布时间】:2016-08-08 08:41:58
【问题描述】:

我正在尝试这段代码

Drop Table Inventory

我得到错误:

无法删除对象“Inventory”,因为它被 FOREIGN KEY 约束。

【问题讨论】:

    标签: sql sql-server-2005


    【解决方案1】:

    使用这个

    DROP TABLE Inventory CASCADE CONSTRAINTS;
    

    【讨论】:

    • drop table [ur table here] cascade constraints; 它应该可以工作
    • @NizarHawawreh:您给出的语法是针对 Oracle 的,而问题是针对 SQLserver 标记的
    • @theGameiswar,对不起,stackoverflow 的第一个小时:P
    【解决方案2】:

    首先你必须Drop 表的约束,然后是表

    SELECT 
        'ALTER TABLE ' +  OBJECT_SCHEMA_NAME(parent_object_id) +
        '.[' + OBJECT_NAME(parent_object_id) + 
        '] DROP CONSTRAINT ' + name
    FROM sys.foreign_keys
    WHERE referenced_object_id = object_id('Inventory')
    Drop Table Inventory
    

    【讨论】:

    • 我收到错误:无法删除对象“库存”,因为它被外键约束引用。我做错了吗?
    【解决方案3】:

    你需要先删除约束..

    ALTER TABLE [dbo].[t2] DROP CONSTRAINT [foreign key constraint]
    

    然后你可以删除表

    Drop table t1
    

    【讨论】:

      【解决方案4】:

      试试这个

      ALTER TABLE Inventory NOCHECK CONSTRAINT all
      DROP TABLE Inventory
      

      【讨论】:

      • 我收到错误:无法删除对象“Inventory”,因为它被 FOREIGN KEY 约束引用。
      • 那是用哪些表引用的??
      【解决方案5】:

      从子表中删除外键约束,然后删除主表

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-21
        • 1970-01-01
        • 1970-01-01
        • 2014-02-09
        • 2013-06-11
        • 2012-07-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多