外鍵(啟用、禁用、增加、刪除)

---啟用or禁用指定表所有外鍵約束 
alter table PUB_STRU  NOCHECK constraint all; 
alter table PUB_STRU  CHECK constraint all; 
   
---生成啟用or禁用指定表外鍵約束的sql 
select 'ALTER TABLE ' + b.name + ' NOCHECK CONSTRAINT ' + a.name +';'  from sysobjects a ,sysobjects b where a.xtype ='f' and a.parent_obj = b.id and b.name='表名'; 
select 'ALTER TABLE ' + b.name + ' CHECK CONSTRAINT ' + a.name +';'  from sysobjects a ,sysobjects b where a.xtype ='f' and a.parent_obj = b.id and b.name='表名'; 
 
--生成的sql如下
ALTER TABLE PUB_STRU NOCHECK CONSTRAINT PUBSTRU_FK1;
ALTER TABLE PUB_STRU NOCHECK CONSTRAINT PUBSTRU_FK2;
ALTER TABLE PUB_STRU CHECK CONSTRAINT PUBSTRU_FK1;
ALTER TABLE PUB_STRU CHECK CONSTRAINT PUBSTRU_FK2;  
 
 --查看約束狀態(tài)(查詢字典表 sys.foreign_keys,該字典表開始出現(xiàn)于sqlserver2005及以上版本):
select name , is_disabled from sys.foreign_keys order by name; 
 --其中:name  : 外鍵約束名稱   is_disabled : 是否已禁用

--刪除外鍵
alter table AdItem drop constraint AdOrder_AdItem_FK1
 
--增加外鍵
alter table AdItem
add constraint AdOrder_AdItem_FK1 foreign key (AI_nOrderNo) references AdOrder(AO_nOrderNo)
 
--單個(gè)表的一個(gè)外鍵
alter table Student nocheck constraint FK__Student__SchoolN__4222D4EF 
alter table Student check constraint FK__Student__SchoolN__4222D4EF 
 
--單個(gè)表的所有外鍵
alter table Student nocheck constraint all 
alter table Student check constraint all 
 
--某個(gè)數(shù)據(jù)庫(kù)的所有表
EXEC sp_MSforeachtable @command1='alter table ?  NOCHECK constraint all;
EXEC sp_MSforeachtable @command1='alter table ?  CHECK constraint all;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容