如果没有其他不同的object比如view,sp等,不如删掉db2,然后用db1的备份还原成新的db2来的简单

解决方案 »

  1.   

    楼主用什么数据库? 可以跨库建立外键约束么?我创建时出现下述错误:
    服务器: 消息 1763,级别 16,状态 1,行 1
    不支持跨数据库的外键引用。外键 'pubs.dbo.tb'。
    服务器: 消息 1750,级别 16,状态 1,行 1
    未能创建约束。请参阅前面的错误信息。
      

  2.   

    查出所有新增的表名:
    select name from db2..sysobjects b where name not in(select name from db1..sysobjects where xtype = 'U') and xtype = 'U'遍历结果集,从db2里一个一个的drop掉
      

  3.   

    --不管外键约束--删除db2的所有新增表
    use db2
    goexec sp_msforeachtable 
    @whereand=' and not exists(select * from db1.dbo.sysobjects where name=o.name)',
    @command1=' drop table ?'
      

  4.   

    但是现在存在db2对db1的外键约束,不能一次删除,满足实际效果;如果多运行几次存储过程,就可以删除了
      

  5.   

    出现这个了:无法解决 equal to 操作的排序规则冲突,怎么办?
      

  6.   

    --删除db2的所有新增表
    use db2
    goexec sp_msforeachtable 
    @whereand=' and not exists(select * from db1.dbo.sysobjects where name collate Chinese_PRC_CI_AS=o.name)',
    @command1=' drop table ?'