如何在t-sql中指定localhost作为服务器名称?

时间:2015-05-17 11:14:45

标签: sql-server sql-server-2012 sql-server-2014

我在某些选择代码中动态连接到不同的数据库服务器和数据库。但是,当我测试时,我使用本地计算机服务器完成所有操作。

是否有明确指定'LOCALHOST'作为T-SQL代码中的服务器名称?有点像这样:

SELECT 
 *
FROM
 [LOCALHOST].[DBName].[Schema].[TableName]

它必须存在的原因是因为值是从表中动态传递的。出于测试目的,我只想将其全部设置为指向本地计算机。

但是,如果我将本地机器服务器的实际名称放在那里,例如PHILS-PC然后,如果我移动到具有自己的SQL Server本地副本的不同开发机器,我必须更新所有表以使用该本地服务器的名称。我以为LOCALHOST会处理这个问题但它在T-SQL代码中不起作用。我收到这个错误:

  

在sys.servers中找不到服务器'LOCALHOST'。验证   指定了正确的服务器名称。如有必要,执行存储   过程sp_addlinkedserver将服务器添加到sys.servers。

1 个答案:

答案 0 :(得分:0)

不,你不必提到localhost。最初连接到SQL Server时,将决定Localhost上下文。一旦建立连接t sql server,它是SSMS还是应用程序代码,它被认为是你的本地主机。

然后从那里执行的任何代码都在您建立连接的服务器上执行,该查询是localhost,对于任何跨服务器查询,您必须使用链接服务器查询

FROM [LinkedServer].[Database].[Schema].[table]

故事的道德,你不会在你的查询中提到Localhost,因为你知道你只能在连接到服务器后执行sql代码,那么无论你做什么都在localhost的上下文中完成,这显然是有意义的。