MSSQL中刪除所有外來鍵約束的方法

2021-09-07 21:54:25 字數 714 閱讀 5083

在網上找到了一句得到刪除資料庫中所有外來鍵約束的語句的sql語句

但是發現這只是一句查詢,要執行的話,還得複製出來執行,比較麻煩

於是寫了個sp來自動執行,比較方便

**如下:

sql**  

create

procedure sp_drop_all_fk  

asdeclare @sql varchar(255)  

declare dropsql_cursor cursor

forselect

'alter table '+object_name(fkeyid)+' drop constraint '+object_name(constid)+char(10) from sysreferences  

open dropsql_cursor  

fetch dropsql_cursor into @sql  

begin tran  

while @@fetch_status=0  

begin

execute(@sql)  

if @@error <> 0  

begin

rollback

return

endfetch dropsql_cursor into @sql  

enddeallocate dropsql_cursor  

commit

go  

Mysql刪除所有外來鍵約束

由於外來鍵約束的存在,使得後期的分庫分表非常麻煩,對於沒有用到外來鍵約束限制操作,並且有外來鍵結構的資料庫,刪除所有外來鍵約束很有必要,使資料庫可移植性強,可拆解性強 執行查詢所有外來鍵命令,並且拼接刪除外來鍵的sql 複製所有sql,並執行 select concat alter table ta...

oracle外來鍵約束資料刪除

今天同事讓我刪除乙個表的資料,痛快的答應說好 看起來挺簡單的乙個任務,做起來可棘手,原來這個表是外來鍵約束的,作為乙個主表存在!可是,我剛剛接觸這個系統,可是難死我了 之後查了一下資料確認可以通過約束名來查詢到相應的表禁用約束,這才解決了 下面是我做的實驗過程 首先建兩張表 create table...

mysql 所有外來鍵 mysql中的外來鍵

mysql中的外來鍵 1.預設的外來鍵存在之後,會對資料進行約束。1 約束1 如果子表中新增的資料,外來鍵字段對應的資料如果在父表中不存在,那麼新增失敗。有資料之後 2 約束2 父表不能刪除 或者修改 乙個被子表引用的資料記錄 3.外來鍵約束 預設的使用者所能看到的約束都是外來鍵的一種約束 嚴格模式...