【发布时间】:2015-05-17 11:14:45
【问题描述】:
我在一些选择代码中动态连接到不同的数据库服务器和数据库。但是,当我进行测试时,我会使用本地机器服务器完成所有操作。
有没有在 T-SQL 代码中明确指定 'LOCALHOST' 作为服务器名称?有点像这样:
SELECT
*
FROM
[LOCALHOST].[DBName].[Schema].[TableName]
它必须存在的原因是因为值是动态来自表的。出于测试目的,我只想将其全部设置为指向本地机器。
但是,如果我将本地机器服务器的实际名称放在那里,例如PHILS-PC 然后,如果我移动到具有自己本地 SQL Server 副本的不同开发计算机,我必须更新所有表以使用该本地服务器的名称。我以为 LOCALHOST 可以解决这个问题,但它在 T-SQL 代码中不起作用。我收到此错误:
在 sys.servers 中找不到服务器“LOCALHOST”。验证 指定了正确的服务器名称。如有必要,执行存储的 过程 sp_addlinkedserver 将服务器添加到 sys.servers。
【问题讨论】:
-
运行
select * from sys.servers会得到什么? -
其实答案就在那里:
If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers -
所以我将 localhost 作为服务器添加回自身?
-
@kaybee99 我得到了实际本地机器的名称。所以像“John-PC”这样的东西取决于我使用的笔记本电脑
-
这些查询在哪里执行?在 SSMS、SQLCMD 或其他应用程序上?
标签: sql-server sql-server-2012 sql-server-2014