当前位置: 代码迷 >> Sql Server >> 怎么为数据库起一个别名
  详细解决方案

怎么为数据库起一个别名

热度:49   发布时间:2016-04-24 09:37:27.0
如何为数据库起一个别名?
事情原由:
    有两个数据库, 一个是自家的ERP系统库, 另外一个是工业控制系统库。 ERP这边有很多存储过程要读取工业控制系统数据库,但工业控制系统库是由其它厂家售后实施人员安装的,这个工控系统库的名字就都不统一,且在客户那里已经24小时运行了。

为了减少修改我这边ERP很多存储过程, 就想给这个工业控制系统数据库起一个别名, 我这边只做一个配置即可。  ERP系统在交给实施人员安装时, 就可以只交代一句, 把这个工业控制系统数据库名定义一下, 那么ERP就可以正常读数了。

我要达到这样的效果:

 Select  *  from Business_EIP.dbo.bd_item

 Select  *  from A.dbo.bd_item
是同一个效果。         

实际中:Business_EIP这个工业数据库名是无法确定, 那我想在ERP的存储过程中提前写好别名 A 即可。那么在实际用的时候,只需给Business_EIP起一个别名即可。
------解决思路----------------------
SQL Server Configuration Manager---->SQL Native Client Configuration---->newAliases

注意正确输入ip地址等信息

完成之后可以在ssms里面用 select @@servername 看一下 。

------解决思路----------------------
参考  http://www.mssqltips.com/sqlservertip/1620/how-to-setup-and-use-a-sql-server-alias/
------解决思路----------------------
应该只能给机器取别名吧。数据库能取别名吗?
------解决思路----------------------
同一个实例数据库没记得有加别名的功能。
不过可以将 sqlcmd 与脚本变量结合使用,
将存储过程的脚本写成参数形式,现场运行一次。
Select * from $(EIPdbname).dbo.bd_item

------解决思路----------------------
DB名没有别名概念,变通一下,对每个表创建同义词或视图
------解决思路----------------------
数据库是没有别名这么一说的。

如果放到同一台服务器,如果你不能确定数据库名称,而你的代码又是固定不变的,那就很难处理了。
------解决思路----------------------
"ERP系统在交给实施人员安装时, 就可以只交代一句, 把这个工业控制系统数据库名定义一下,..."
--> 交给实施人员安装,应该也可以把这个工业控制系统数据库名统一一下.
  相关解决方案