我有很多视图,表都来源于其他数据库,如:
select * from anotherDateBase..Table1.Field
但anotherDateBase这个名字以后可能会改变,那为了不至于到时候我每个视图的脚本都要取改一次,
可否创建一个全部变量,保存数据库名称,Select * From @@DateBaseName..Table1.Field
日后无论如何变化,我只要重新给变量赋值就可以了。
或者是有其他的方法实现相同的功能?求赐教!

解决方案 »

  1.   

    不能用全局变量,SQLServer的全局变量是系统内置的变量。可以考虑用拼接字符串,或者先通过sysdatabases来获取库名(这个获取的方式需要有一定的规则,如名字以another开头等)把库名先赋值给一个变量,然后在动态sql中使用。
      

  2.   

    其实一个sql语句就可以批量更新完,我以前见过,忘了收藏了。
      

  3.   

    好吧,还是非常感谢你了。我想我还是把他们批量生成SQL后,在记事本里查找替换,再执行吧。
    不过,再请问您一下,有一下子批量生成多个视图的ALTER VIEW的方法吗?
      

  4.   

    目前见过的就是拼接动态SQL来更改好吧,还是非常感谢你了。我想我还是把他们批量生成SQL后,在记事本里查找替换,再执行吧。
    不过,再请问您一下,有一下子批量生成多个视图的ALTER VIEW的方法吗?
      

  5.   

    就算是定义了全局变量,这个语句Select * From @@DateBaseName..Table1.Field也运行不了啊,也得用动态sql