我的 SQL 服务器实例名称的格式为:'My-Server\InstanceName'
我想给服务器别名'InstanceName'。我在配置管理器中做到了这一点。当我连接到服务器时,我可以使用该别名进行连接。但是,当我想完全限定查询中的对象时(例如,从 InstanceName.Database.dbo.Table 中选择 *),它不起作用。它说它在 sys.servers 中找不到该服务器。为什么是这样?连接后,它似乎没有将别名带到查询中。
谢谢!
我的 SQL 服务器实例名称的格式为:'My-Server\InstanceName'
我想给服务器别名'InstanceName'。我在配置管理器中做到了这一点。当我连接到服务器时,我可以使用该别名进行连接。但是,当我想完全限定查询中的对象时(例如,从 InstanceName.Database.dbo.Table 中选择 *),它不起作用。它说它在 sys.servers 中找不到该服务器。为什么是这样?连接后,它似乎没有将别名带到查询中。
谢谢!
InstanceName 和别名是两个不同的东西。
对于本地服务器,使用 Database.dbo.Table
要连接到另一个服务器(或另一个实例),您应该添加链接服务器 https://docs.microsoft.com/en-us/sql/relational-databases/linked-servers/linked-servers-database-engine。
通常您不需要任何别名,但如果您真的想这样做,请使用示例:
EXEC sp_addlinkedserver
@server=N'S1_instance1',
@srvproduct=N'',
@provider=N'SQLNCLI',
@datasrc=N'S1\instance1'