如何在查询中缩短或别名数据库名称?

时间:2017-10-14 13:04:19

标签: sql sql-server alias

我的服务器中有十到二十个数据库。每次我需要查询我想要这样的东西

Select *  from otp-devices.dbo.deviceid 
select module from mr1ghp/security.dbo.alarmmodlink

我们的数据库名称很长。是否可以在查询otp-devices mr1ghp/security

中缩短或别名数据库名称

3 个答案:

答案 0 :(得分:2)

您可以使用关键字 AS 创建别名,如下所示:

SELECT * FROM `otp-devices.dbo.deviceid ` AS otp

答案 1 :(得分:1)

自SQL Server 2008起,SQL Server支持同义词。

您可以阅读语法here

您可以阅读有关这些提示的信息here

我并不是同义词的粉丝。当相同的对象在不同的​​地方有不同的名称时,我发现数据库更难导航 - 我无法轻易看到映射(与单个查询中的别名一样)。

答案 2 :(得分:-1)

另一种可能性是使用视图提供指向其他数据库中表的链接。使用命名约定来标识视图链接到的数据库。这也有助于将代码与数据库名称的任何更改隔离开来。

CREATE VIEW vOD_deviceid AS SELECT * FROM [otp-devices].dbo.deviceid ;

CREATE VIEW vSC_alarmmodlink AS SELECT * FROM mr1ghp/security.dbo.alarmmodlink

然后在其他地方

SELECT * FROM vOD_deviceid; -- OD prefix identifies the database
SELECT module FROM vSC_alarmmodlink;

只需将视图名称替换为使用完整的database.schema.tablename。