Sql 查询不同服务器上的表,一个本地

Sql 查询不同服务器上的表,一个本地,sql,sql-server,Sql,Sql Server,这似乎很基本,但我对SQL Server非常陌生。我甚至不知道如何找到这个答案,因为我可能连问的都不对 我的任务是将Access数据库移动到SQL Server以实现可伸缩性。我已经创建了一个本地实例,并且毫无问题地移动了表 现在我必须转换填充这些表的操作查询。Access与2台远程SQL Server建立了ODBC连接,并在本地拥有自己的表。我正在移动的查询很容易在Access中设计/执行,但我面临着用SQL编写脚本的挑战。我在SQLServerManagementStudio中连接了两台远程

这似乎很基本,但我对SQL Server非常陌生。我甚至不知道如何找到这个答案,因为我可能连问的都不对

我的任务是将Access数据库移动到SQL Server以实现可伸缩性。我已经创建了一个本地实例,并且毫无问题地移动了表

现在我必须转换填充这些表的操作查询。Access与2台远程SQL Server建立了ODBC连接,并在本地拥有自己的表。我正在移动的查询很容易在Access中设计/执行,但我面临着用SQL编写脚本的挑战。我在SQLServerManagementStudio中连接了两台远程服务器,但试图为本地插入查询引用远程表让我感到困惑

我一直在尝试使用以下语法进行选择和联接:

[server name].[database name].[schema].[table name]
我得到的是关键字“FROM”附近的语法不正确

同样,如果其他地方也提到了这一点,即使是一个链接也会有所帮助。正如我所说,我刚刚开始了解这一点,可能没有正确地搜索

非常感谢

更新-使用SQL Server Management Studio 2012。我确实在对象浏览器中添加了到其他两台服务器的链接。现在我需要了解如何在一个查询中同时使用本地表和远程表

INSERT INTO dbo.QUES_ANSWER_LABEL ( ques_data_id, label_id )

SELECT QFINITI.Qfiniti_Platform.dbo.eval_question_answer_label.ques_data_id, QFINITI.Qfiniti_Platform.dbo.eval_question_answer_label.label_id

FROM EVAL_CORE INNER JOIN EVAL_QUES_LNK ON EVAL_CORE.eval_id = EVAL_QUES_LNK.eval_id INNER JOIN QFINITI.Qfiniti_Platform.dbo.eval_question_answer_label ON EVAL_QUES_LNK.ques_data_id = QFINITI.Qfiniti_Platform.dbo.eval_question_answer_label.ques_data_id

WHERE EVAL_CORE.quality_date = CONVERT(DATETIME, '2013-12-02 00:00:00', 102);
这显示了我的尝试,我得到的错误是:

Msg 4104,16级,状态1,第4行


无法绑定多部分标识符QFINITI.QFINITI\u Platform.dbo.eval\u question\u answer\u label.ques\u data\u id。

您可以使用链接服务器在不同实例中联接表,有关详细信息,请参阅文档

或者类似的答案

试着这样做:

INSERT INTO dbo.QUES_ANSWER_LABEL ( ques_data_id, label_id )

SELECT eval_question_answer_label.ques_data_id, eval_question_answer_label.label_id

FROM        EVAL_CORE 
INNER JOIN  EVAL_QUES_LNK ON EVAL_CORE.eval_id = EVAL_QUES_LNK.eval_id 
INNER JOIN  QFINITI.Qfiniti_Platform.dbo.eval_question_answer_label ON EVAL_QUES_LNK.ques_data_id = eval_question_answer_label.ques_data_id

WHERE EVAL_CORE.quality_date = CONVERT(DATETIME, '2013-12-02 00:00:00', 102);

在列引用中不应使用完整的表路径,仅使用本地表名就足够了。您应该只需要FROM子句的表引用中的完整表路径。

删除服务器是链接到本地服务器,还是运行查询的服务器?向我们展示引发该错误的所有查询。错误来自于引用/名称周围的内容。“从[DBWS0289].[QF_平台].[dbo].[eval_表单];”中选择[eform_id]”当我在对象浏览器中连接到远程服务器时,我可能没有链接到服务器,这可能是我的概念理解造成的。链接是否需要在远程服务器上提高权限?@BumpML可能,但这与语法错误无关。我不知道你的答复中那些引号/撇号是怎么回事。请编辑您的问题帖子并添加一个完整的查询,与您用于编辑和执行查询的任何工具或代码中显示的完全相同,并让我们知道该工具是什么。如果你能给我们足够的信息来重现这个问题,我们可能会在几秒钟内解决它。@rbaryyoung,谢谢。我在上面的问题中添加了更多内容,以表明我的立场。我欣赏你的洞察力!谢谢你,菲尔。这是否需要增加远程服务器上的权限?我添加链接服务器的尝试未成功。理想情况下,您可以在两台服务器上创建一个帐户,或者使用SA帐户(如果可用)。我确实找到了如何链接到服务器的方法。脚本中是否有需要调用的函数?