经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库运维 » MS SQL Server » 查看文章
批量删除MSSQL 中主外键约束
来源:cnblogs  作者:Adeal2008  时间:2018/9/26 17:50:46  对本文有异议

转自: http://www.maomao365.com/?p=813

在制作 MSSQL同步工具的时候,发现由于主外键的约束,导致数据同步异常,所有我们需要把 读数据库里面的主外键约束,进行批量删除操作.

表同步工具

1 如何批量查询数据库的主外键?
在MSSQL2005以上版本中,系统提供一个系统视图 sys.foreign_keys 可以查询出系统所有的外键约束
外键查询sql脚本
2 如何批量删除数据库的主外间键?

  1. --------------------------------------------------------------------------
  2.  
  3. create table #t (keyId int identity,name varchar(200),tbname varchar(200))
  4. insert into #t (name,tbName)
  5. select a.name,b.name from sys.foreign_keys a
  6. left join sysobjects b on a.parent_object_id = b.id
  7. declare @i int,@imax int,@name varchar(200) ,@tbName varchar(200)
  8. select @i=MIN(keyId) from #t
  9. select @imax=MAX(keyid) from #t
  10. while @i<=@imax
  11. begin
  12. set @name=''
  13. set @tbName =''
  14. select @name =name,@tbName=tbname from #t where keyId=@i
  15. --print @name
  16. --print @tbName
  17.  
  18. print(' ALTER TABLE ['+@tbname +'] DROP CONSTRAINT ['+@name+']')
  19. exec(' ALTER TABLE ['+@tbname +'] DROP CONSTRAINT ['+@name+']')
  20. set @i=@i+1
  21. end
  22.  
  23.  
  24. truncate table #t
  25. drop table #t
  26. ----------------------------------------------------------

同步工具,剔除外键约束后,一切正常 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号