从 SQL Server 插入 Access

Posted

技术标签:

【中文标题】从 SQL Server 插入 Access【英文标题】:Insert into Access from SQL Server 【发布时间】:2013-02-01 19:06:31 【问题描述】:

我希望将几千条记录从 SQL Server 复制到 C# 中的 Access 中。另一个方向使用SqlBulkCopy。有什么办法可以反过来做吗?

我正在尽最大努力避免循环遍历每条记录中的每个字段并构建令人发指的Insert 语句,该语句不仅需要永远运行,而且如果发生任何变化,可能会严重崩溃。

【问题讨论】:

我应该指定,我使用 SqlConnection 连接到 SQL Server 并使用 OleConnection 连接到 Access ——我在我的代码中做了很多其他操作。 【参考方案1】:

这将针对 MS Access OleConnection 连接运行:

SELECT fld1, fld2 INTO accessTable FROM [sql connection string].sqltable

例如:

SELECT * INTO newtable 
FROM 
[ODBC;Description=Test;DRIVER=SQL Server;SERVER=server\SQLEXPRESS;UID=uid;Trusted_Connection=Yes;DATABASE=Test].table_1

或追加

INSERT INTO newtable
SELECT *
FROM [ODBC;Description=Test;DRIVER=SQL Server;SERVER=server\SQLEXPRESS;UID=uid;Trusted_Connection=Yes;DATABASE=Test].table_1;

或使用 FileDSN

INSERT INTO newtable
SELECT * 
FROM [ODBC;FileDSN=z:\docs\test.dsn].table_1;

您需要找到合适的驱动程序,例如

ODBC;Driver=SQL Server Native Client 11.0;Server=myServerAddress;Database=myDataBase; Uid=myUsername;Pwd=myPassword; 

来自http://connectionstrings.com 对我有用,但请查看您的客户端版本。

【讨论】:

看起来这是正确的方法,但我需要一些额外的帮助来提供密码而不是受信任的连接:SELECT * FROM [ODBC;Description=Test;DRIVER=SQL Server;SERVER=IpAddress;UID=Username;PASSWORD=Pass;DATABASE=DB].dbo.Orders -- 我输入的凭据有误吗?他们似乎不是这样工作的。谢谢! 您需要找到适合的驱动程序,例如 ODBC;Driver=SQL Server Native Client 11.0;Server=myServerAddress;Database=myDataBase; Uid=myUsername;Pwd=myPassword; from connectionstrings.com 适合我,请查看您的客户端版本。 您也可以使用 DSN 或 FileDSN。 您刚刚发布的字符串 ODBC;Driver=SQL Server Native Client 11.0;Server=myServerAddress;Database=myDataBase; Uid=myUsername;Pwd=myPassword; 可以连接 - 所以谢谢!现在,由于某种原因,当我使用SELECT 对其进行测试时,它会返回 Access 中的所有 #DELETED 行。这正常吗? 不,不是。当我运行例如 SELECT * FROM [ODBC;FileDSN=z:\docs\test.dsn].table_1 时,我会得到记录。

以上是关于从 SQL Server 插入 Access的主要内容,如果未能解决你的问题,请参考以下文章

从 SQL Server 中的选择查询错误插入

插入到从选择性能 SQL Server

从 Excel / CSV 批量插入到 SQL Server

从 SQL Server 插入 Access

从 MS Access 批量导入并插入 Sql Server [关闭]

Microsoft SQL Server 从选择查询插入