1. 程式人生 > >解決無法刪除表,提示被外來鍵約束引用

解決無法刪除表,提示被外來鍵約束引用

有時想刪除某個表時,提示“無法刪除物件 '表名',因為該物件正由一個 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 外來鍵名

將先前查詢語句查出的外來鍵列表一一刪除外來鍵,再執行刪除表操作即可。

相關推薦

解決無法刪除提示外來約束引用

有時想刪除某個表時,提示“無法刪除物件 '表名',因為該物件正由一個 FOREIGN KEY 約束引用”,原因是它被其它表的外來鍵引用了,所以無法刪除。在此只需先找到哪些表的外來鍵引用了該表的欄位。通過系統函式就能解決(SQL Server系統函式提供了非常完善的功能,能

sql server解決無法刪除提示外來約束引用

sql 解決無法刪除表,提示被外來鍵約束引用 介紹,大家可參考。 Drop table命令用於刪除一個表格或者表中的所有行。其語法格式為:   drop table "tablename"   下面舉個例子:   drop table employee;   為

無法建立提示:指定的架構名稱 "dbo" 不存在或者您沒有使用該名稱的許可權。解決方法

http://www.myexception.cn/sql-server/350455.html 無法建立表,提示:指定的架構名稱 "dbo" 不存在,或者您沒有使用該名稱的許可權。 請教各位大俠,情況是這樣的,使用sa賬戶在資料庫test裡面為登入名user1建立一個使

SQL SERVER-增加聯絡關聯查詢增加主外來約束

      using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System

SQL - 創建一個學生要求有主約束和非空約束

creat red 要求 pri har 學生 not null clas sql CREATE TABLE [dbo].[Student] ( [ID] [int] NOT NULL, [Name] [nchar](10) NOT NULL, [Age] [in

oracle匯入資料時遇到外來約束問題導致匯入失敗

1、先關掉所有外來鍵約束: SELECT 'alter table  '|| t.table_name || ' disable constraint ' || t.CONSTRAINT_NAME || ';' FROM USER_CONSTRAINTS t WHERE t.CONST

SQL語句刪除具有外來約束(foreign key)的。錯誤提醒:無法刪除物件 '名'因為該物件正由一個 FOREIGN KEY 約束引用

當我們在刪除一張有外來鍵約束的表時,直接採用drop table A表,會報以下錯誤:        無法刪除物件 'A表',因為該物件正由一個 FOREIGN KEY 約束引用。錯誤原因:A表被其他表的外來鍵引用了解決方法:                1.找出本表的外來

VS2017生成解決方案報錯提示對路徑的訪問拒絕

再次 路徑 alt 電腦 有時 沒有 images image log 目前我用的vs2017的版本是15.3.5。生成解決方案有時會提示如下: 開始以為是權限的問題,找到相應的目錄設置everyone權限,再次生成還是不行。重啟VS試了下,還是不行。 最後無奈重啟

VS2013無法載入解決方案中專案提示未能正確載入解決方案中的一個或多個專案

現象:開啟一個工程,上午還能正常操作,下午就打不開了。試了所有的工程都打不開。 提示: 未能正確載入解決方案中的一個或多個專案 解決辦法: 1、關閉VS; 2、去C:\Users\AppData\Local\Microsoft\VisualStudio\12.0\ComponentMod

【轉帖】 Windows中解決刪除檔案時提示程序佔用的問題

原文連結是:https://blog.csdn.net/caodinke/article/details/45101119 應用背景:   windows作業系統中,有時我們關閉程式後,一些相關的程序仍在後臺執行,並訪問著一些檔案,使得我們無法對這些檔案及其所屬的資料夾進行刪除、重新命名等操

建立、修改刪除的方法 建立主約束外來約束、使用者自定義約束的方法 建立查詢表的方法及使用截斷的方法理解約束在資料庫中的作用

撰寫人——軟工二班——陳喜平 – 實驗內容: – 一、建立表 – 建立圖書館管理系統所涉及的表 – 建立產品銷售系統所涉及的表 – 圖書表book(bid,bname,price,qty) – 書庫表lib(lid,lname,address) – 讀者表reader

建立和測試觸發器:向SC插入資料時檢查插入資料的課程號是否存在於Course中(建立之前刪除Cno的外來約束比較外來約束和觸發器之間的不同)

alter table SC Drop constraint FK_SC--刪除外來鍵約束 CREATE TRIGGER trig_insert ON SC--在SC表中建立trig_insert觸發器 AFTER INSERT--insert為觸發事件,after則為觸發的時機

解決Firefox無法開啟問題提示Couldn’d load XPCOM【完美解決

先說一下原因: 這是因為瀏覽器註冊的元件出錯所致。為了解決這個問題,可以嘗試充分解除安裝火狐瀏覽器後再重新安裝。 請注意:所謂的徹底解除安裝是指包括清除所有之前火狐瀏覽器的安裝資訊,包括登錄檔資訊。 我個人是解除安裝後又安裝到導致的這個情況,百度了許久也沒有找到一個完整

無法刪除資料庫因為該資料庫當前正在使用"問題解決

USE MASTER GO DECLARE @dbname SYSNAME SET @dbname = 'EducationManagementSystem' -- 這個是要刪除的資料庫庫名 DECLARE @s NVARCHAR( 1000) DECLARE tb CURSOR

MySQL外來約束_ON DELETE CASCADE/ON UPDATE CASCADE(級聯刪除刪除主表資料附表資料也刪除

MySQL通過外來鍵約束實現資料庫的參照完整性,外來鍵約束條件可在建立外來鍵時指定,table的儲存引擎只能是InnoDB,因為只有這種儲存模式才支援外來鍵。 外來鍵約束條件有以下4種: (1)restrict方式:同no action,都是立即檢查外來鍵約束; - - 限制

"無法刪除資料庫因為該資料庫當前正在使用"問題解決

 以前剛學資料庫的時候比較苦惱這個問題,今天刪除的時候又看見了,正好一起記錄一下: 圖形化方法: 命令列方法: use master go declare @dbname sysname set @dbname = 'BigValuesTest' -

sql-"無法刪除資料庫因為該資料庫當前正在使用"問題解決

USE MASTER GO DECLARE @dbname SYSNAME SET @dbname = 'databasename' --這個是要刪除的資料庫庫名 DECLARE @s NVARCHAR(1000) DECLARE tb

SQL Server無法刪除資料庫因為該資料庫當前正在使用的解決辦法

問題描述 今天在SQL Server刪除一個數據庫的時候報錯,內容如下: 訊息 3702,級別 16 無法刪除資料庫 “score”,因為該資料庫當前正在使用。 我的SQL原語句是這樣的 drop database score;

oracle約束+check+暴力刪除無視外來+檢視使用者建立的+檢視約束

check 指定一列或一組列必須滿足的條件 條件: 表中每一行都要滿足該約束條件,才會儲存到表中 特點: 1check約束表示式中,必須引用表中一個或者多個列;並且表示式的運算結果是一2個布林值 2一個列中可以定義多個check約束 3同一個列可

解決無法安裝cnpmcnpm卡頓問題

緩存 nod install -- 安裝 force lean pre 源碼 # 註冊模塊鏡像 npm set registry https://registry.npm.taobao.org # node-gyp 編譯依賴的 node 源碼鏡像 npm set d