从链接的SQL表存储/创建本地表

时间:2017-04-05 21:36:18

标签: sql-server ms-access

我的访问数据库中有一个链接表(dbo_Billing_denied(DSN = WTSTSQL05_BB; DATABASE = DEPTFINANCE)等),我想创建一个表,将这个链接的数据存储到本地表中,所以我可以使用它运行其他查询。目前我可以使用它,因为它告诉我它无法建立连接(ODB - 连接到'WTSTSQL05_BB'失败。

我是否必须首先创建一个表并在我执行此操作之前分配所有字段(创建一个与链接表中的内容相同的表和字段,然后创建附加查询来执行此操作...)< / p>

1 个答案:

答案 0 :(得分:0)

听起来你可能有两个问题。我将解决第二个问题。在此之前,您需要重新建立与链接表的连接。

您可以在Access中使用“生成表查询”来创建链接表的本地副本。您可以使用GUI,或者您可以构建如下所示的SQL:

SELECT <list of various fields, or * for all fields>
INTO <name of new local table>
FROM <name of linked table(s) on the server>
WHERE <any other conditions you want to put on which records are included>;

我提到可能有多个表。您也可以使用连接表或联合等来执行此操作。“where”子句是可选的。删除它将复制整个数据集。

当您尝试在Access中执行此查询时,您将收到警告。它会告诉您即将编写(或覆盖)表。如果您正在尝试为最终用户编写一个更简洁消息的清洁应用程序,请从宏中调用此查询。宏需要关闭警告,执行查询,然后重新打开警告。

Microsoft Access不需要您在编写之前创建此表;如果表不存在Access将根据源数据中的字段定义为您创建此表。如果存在同名表,Access将从您的数据库中删除该表,然后创建一个具有该名称的新表。

这也意味着您生成的本地表需要一个唯一的名称。如果您的查询尝试使用相同的名称覆盖链接表,Access将要做的第一件事是删除链接表。然后,它将在刚刚删除的链接表中查找字段定义和输入数据。

由于新的本地表将具有新名称,因此为链接表开发的查询将无法与新的本地表一起使用。一种可能的解决方法是重命名本地Access数据库中的链接表。 Access中的表名不需要等于它链接到的数据库中的名称。然后,查询可以写入具有正确名称的表,并且先前的查询应该有效。不过,请记住,这些查询将不再适用于实时数据。