我在某些选择代码中动态连接到不同的数据库服务器和数据库。但是,当我测试时,我使用本地计算机服务器完成所有操作。
是否有明确指定'LOCALHOST'作为T-SQL代码中的服务器名称?有点像这样:
SELECT
*
FROM
[LOCALHOST].[DBName].[Schema].[TableName]
它必须存在的原因是因为值是从表中动态传递的。出于测试目的,我只想将其全部设置为指向本地计算机。
但是,如果我将本地机器服务器的实际名称放在那里,例如PHILS-PC然后,如果我移动到具有自己的SQL Server本地副本的不同开发机器,我必须更新所有表以使用该本地服务器的名称。我以为LOCALHOST会处理这个问题但它在T-SQL代码中不起作用。我收到这个错误:
在sys.servers中找不到服务器'LOCALHOST'。验证 指定了正确的服务器名称。如有必要,执行存储 过程sp_addlinkedserver将服务器添加到sys.servers。
答案 0 :(得分:0)
不,你不必提到localhost。最初连接到SQL Server时,将决定Localhost上下文。一旦建立连接t sql server,它是SSMS还是应用程序代码,它被认为是你的本地主机。
然后从那里执行的任何代码都在您建立连接的服务器上执行,该查询是localhost,对于任何跨服务器查询,您必须使用链接服务器查询
FROM [LinkedServer].[Database].[Schema].[table]
故事的道德,你不会在你的查询中提到Localhost,因为你知道你只能在连接到服务器后执行sql代码,那么无论你做什么都在localhost的上下文中完成,这显然是有意义的。