sql 解决无法删除表,提示被外键约束引用

Drop table命令用于删除一个表格或者表中的所有行。其语法格式为:

  drop table "tablename"

  下面举个例子:

  drop table employee;

  为了删除整个表(包括所有的行),可以使用drop table命令后加上tablename。Drop table命令跟从表中删除所有记录是不一样的:

 

提示“无法删除对象 'Orders',因为该对象正由一个 FOREIGN KEY 约束引用”,原因很简单不要急躁,它被其它表的外键引用了,所以无法删除,在此只需先找到哪些表的外键引用了该表的字段。通过系统函数就能解决(SQL Server系统函数提供了非常完善的功能,能代替我们查找和解决许多问题)。

 代码如下 复制代码

select
    fk.name,fk.object_id,OBJECT_NAME(fk.parent_object_id) as referenceTableName
from sys.foreign_keys as fk
join sys.objects as o on fk.referenced_object_id=o.object_id
where o.name='被引用的表名'

以上SQL语句能够得到某个表被哪些外键引用,并且也显示出了外键表的表名。通过外键表的表名和外键名称执行以下语句即可删除外键。

ALTER TABLE dbo.被引用的表名  DROP CONSTRAINT 外键名

 

时间: 2024-09-27 18:04:07

sql 解决无法删除表,提示被外键约束引用的相关文章

sql server删除外键约束

  x先找出约束名字 然后删除它 我给个例子 --测试环境 --主表 create table test1(id int primary key not null,value int) insert test1 select 1,2 go --从表 create table test2(id int references test1(id),value int) go --第一步:找出test2表上的外键约束名字 --2000 exec sp_helpconstraint 'test2' --可

mysql外键约束使用详解

MySQL有两种常用的引擎类型:MyISAM和InnoDB.目前只有InnoDB引擎类型支持外键约束.InnoDB中外键约束定义的语法如下: [CONSTRAINT [symbol]] FOREIGN KEY     [index_name] (index_col_name, ...)     REFERENCES tbl_name (index_col_name,...)     [ON DELETE reference_option]     [ON UPDATE reference_opt

详解MySQL中的外键约束问题_Mysql

使用MySQL开发过数据库驱动的小型web应用程序的人都知道,对关系数据库的表进行创建.检索.更新和删除等操作都是些比较简单的过程.理论上,只要掌握了最常见的SQL语句的用法,并熟悉您选择使用的服务器端脚本语言,就足以应付对MySQL表所需的各种操作了,尤其是当您使用了快速MyISAM数据库引擎的时候.但是,即使在最简单的情况下,事情也要比我们想象的要复杂得多.下面我们用一个典型的例子进行说明.假设您正在运行一个博客网站,您几乎天天更新,并且该站点允许访问者评论您的帖子. MySQL外键约束条件

讲解SQL与Oracle外键约束中的级联删除

最近软件系统中要删除一条记录,就要关联到同时删除好多张表,它们之间还存 在着约束关系.所以考虑到在创建表时加上约束关系,详细内容如下: SQL的外键约束可以实现级联删除与级联更新; ORACLE则只充许级联删除. SQL级联删除与级联更新使用格式: CREATE TABLE A001(ID INT PRIMARY KEY,NAME VARCHAR(20)) CREATE TABLE A002(ID INT REFERENCES A001(ID)ON DELETE CASCADE ON UPDAT

access-如何解决数据库删除字段提示输入参数值

问题描述 如何解决数据库删除字段提示输入参数值 以前学过编程都忘了,现在需要用,别人的简单会员管理数据库,删了些字段,提示输入参数值, 如何解决数据库删除字段提示输入参数值 给个教程也行 主要功能是,a表 姓名 , 性别 ,年龄 b表 姓名 , 消费 张三 ,10元 李四 , 20元 张三 , 30元 a表输入数据时,b表同时生成,姓名字段,只手动添加消费字段数值

清空具有外键约束的表时报ERROR 1701(42000)的解决

清空具有外键约束的表时报ERROR 1701(42000)的解决 ERROR 1701 (42000): Cannot truncate a table referenced in a foreign keyconstraint (`furion`.`tbl_frn_alert`, CONSTRAINT `FK353A3CBEB139CC08`FOREIGN KEY (`endpt_id`) REFERENCES `furion`.`tbl_frn_endpt` (`id`)) 解决方法: my

PostgreSQL 能否自定义外键约束,用来检查关联表的逻辑删除

问题描述 PostgreSQL 能否自定义外键约束,用来检查关联表的逻辑删除 商品表:create table goods(id serial primary keyname character varyingdelete_flag integer not null default 0);delete_flag=0表示正常的数据,delete_flag=1的表示被删除的数据.订单表:create table orders(id integergoods_id integer);能否在订单表添加外

sql drop用法删除表,删除数据库,删除索引

下面我们来看看我们常用的drop 函数吧,这是在mysql mssql access里面用来删除sql drop用法删除表,删除数据库,删除索引哦面我们来一一步例子吧. drop index 删除索引 access删除索引:DROP INDEX index_name ON table_name mssql删除索引:DROP INDEX table_name.index_name mysql删除索引:ALTER TABLE table_name DROP INDEX index_name DB2/

.Net中删除数据前进行外键冲突检测

数据 在编写数据库系统中为了保证系统中数据的一致性最简便且安全的方法就是在DBMS中建立外键约束,但删除主键数据时如果违反了外键约束,尽管DBMS会给出错误提示,如SQL Server的提示信息"%1! 语句与 %2! %3! 约束 '%4!' 冲突.该冲突发生于数据库 '%6!',表 '%8!'%10!%11!%13!.",但这些提示信息对最终用户来说,是不友好的,于是就自己写了个类,用来删除记录时的进行外键冲突检测,代码如下: using System;using System.D