事情原由:
有两个数据库, 一个是自家的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系统在交给实施人员安装时, 就可以只交代一句, 把这个工业控制系统数据库名定义一下,..."
--> 交给实施人员安装,应该也可以把这个工业控制系统数据库名统一一下.