none
如何快速修改所有视图中的数据库名? RRS feed

  • 问题

  • 我的数据库中,视图中都含有数据库名称

    select * from [db1].[dbo].[t1] inner join ......

    现在需要对数据库更名为db2,但是更名后这些视图都无法使用了,请问这种情况该如何解决?谢谢。

    2015年5月18日 2:46

答案

  • 这个好像没有什么简单快捷的方法

    要再准确一点的话,可以再判断一下 db1 后面是否有架构名和对象名, 降低误差,不过,除非你的视图非常多,否则的话,还不如人工看一次快,比较视图的复杂程序不算非常高

    • 已标记为答案 Jeuo 2015年5月19日 3:33
    2015年5月18日 6:25

全部回复

  • 我想了一个办法,就是先导出所有视图脚本,然后将[db1]替换为[db2],然后在更名后的数据库中重建视图。但是这种方式我担心有隐患(如某个表名或者字段也叫db1,替换中就会被替换掉)。

    是否有某个内置功能可以达到更改视图中数据库名的效果?

    2015年5月18日 2:49
  • 这个好像没有什么简单快捷的方法

    要再准确一点的话,可以再判断一下 db1 后面是否有架构名和对象名, 降低误差,不过,除非你的视图非常多,否则的话,还不如人工看一次快,比较视图的复杂程序不算非常高

    • 已标记为答案 Jeuo 2015年5月19日 3:33
    2015年5月18日 6:25
  • Don't need db name if views and base tables are in same db.
    2015年5月18日 13:27
  • 不明白为什麽要加db1?不加db1 也是可以的

    [db1].[dbo].[t1]  


    Love SQL

    2015年5月18日 13:51
  • 不明白为什麽要加db1?不加db1 也是可以的

    [db1].[dbo].[t1]  


    Love SQL

    应该是考虑到这样写,不论移到那个库,视图都能用(我遇到的一些开发人员是这样认为的)
    2015年5月19日 1:15