微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SqlServer禁用、启用外键约束

---生成启用or禁用指定表外键约束的sql
select 'ALTER TABLE ' + b.name + ' NOCHECK CONSTRAINT ' +a.name +';'   from sysobjects a,sysobjects b wherea.xtype ='f' and a.parent_obj = b.id ;
select 'ALTER TABLE ' + b.name + ' CHECK CONSTRAINT ' + a.name+';'   from sysobjects a,sysobjects b wherea.xtype ='f' and a.parent_obj = b.id ; DECLARE @i INT DECLARE @nochecksql NVARCHAR(MAX) SET @nochecksql='' SELECT @i=COUNT(*) from sysobjects where xtype='u' WHILE(@i>0) BEGIN     SELECT @nochecksql ='exec sp_msforeachtable ''alter table ['+name+'] nocheck constraint all'';'+CHAR(10) FROM(     SELECT ROW_NUMBER() OVER(ORDER BY name) AS rownum,name  from sysobjects where xtype='u') AS T     WHERE rownum=@i          SET @i=@i-1     PRINT (@nochecksql); END PRINT @nochecksql SELECT @i=COUNT(*) from sysobjects where xtype='u' DECLARE @checksql NVARCHAR(MAX) WHILE(@i>0) BEGIN     SELECT @nochecksql+='exec sp_msforeachtable ''alter table ['+name+'] CHECK constraint all'';'+CHAR(10) FROM(     SELECT ROW_NUMBER() OVER(ORDER BY name) AS rownum,name  from sysobjects where xtype='u') AS T     WHERE rownum=@i          SET @i=@i-1 END PRINT @nochecksql

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐