繁体   English   中英

C#将MS-Access数据库导入SQL Server?

[英]C# import MS-Access database into SQL Server?

我需要每天一次将来自MS Access数据库的数据导入到SQl Server 2000数据库中。 由于我需要每天自动完成此操作,是否有ac#例程可以执行此操作?

MS Access数据库中的表将在SQL Server中被命名为相同的表,它需要删除SQL Server数据库中的表,然后从MS Access导入新的数据/表。

一种选择是在sql服务器数据库中创建一个存储过程来执行此操作,请参见此处: 从访问数据库文件中选择并插入到sql数据库中

正如marc_s所提到的那样,您可能可以使用SSIS-但要想正确使用它可能需要大量的学习。

另一个选择是从C#中控制它-从访问数据库中提取数据,然后将其插入到sql服务器中-这不太可能是您想要的。

如果保证您的访问数据库和sql服务器实例位于同一台服务器上,那么我将倾向于尝试选项1。如果没有,那么它将带来许多其他问题;)

编辑:您提到可以通过单击按钮来完成-在这种情况下,实际上您应该至少给SSIS解决方案一次,看看它是否看起来像您想要的那样,它正是针对这种情况而设计的。

access.mdb链接的服务器在sql server的任何版本中,都需要Microsoft.ACE.OLEDB.12.0或Microsoft.Jet.OLEDB.4.0。 这些驱动程序存在两种类型的32位和64位。 64位操作系统更喜欢安装64位喷射驱动程序,否则可能无法正常连接。

三个步骤:

1-在SQLServer中创建LinkedServer,如下所示:
EXEC master.dbo.sp_addlinkedserver @server = 'Customers', @srvproduct = 'CustomersDB', @provider = 'Microsoft.Jet.OLEDB.4.0', @datasrc = 'C:\\inetpub\\wwwroot\\ftp\\AccessDB.MDB', @location = '', @provstr = '', @catalog = ''
EXEC master.dbo.sp_serveroption @server = 'Customers', @optname = 'collation compatible', @optvalue = 'false'

2-在执行导入工作的目标sqlserver中创建一个存储过程
CREATE PROCEDURE ImportMDBData
as
TRUNCATE TABLE sqlServerCustTable
INSERT INTO sqlServerCustTable (list your columns name here) (SELECT * FROM Customers.dbo.mdbCustTable)

3-现在您只需要从代码中调用存储过程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM