Tsql Microsoft.ACE.OLEDB.12.0驱动程序错误

Tsql Microsoft.ACE.OLEDB.12.0驱动程序错误,tsql,text-files,oledb,linked-server,Tsql,Text Files,Oledb,Linked Server,我有一条语句将数据从平面文件加载到数据库表,但它抛出了一个错误。 我使用的声明是: INSERT INTO emp_scd(empno,ename,hiredate) SELECT empno,ename,hiredate FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=D:\Data Migration;', 'SELECT * FROM Output.txt')

我有一条语句将数据从平面文件加载到数据库表,但它抛出了一个错误。 我使用的声明是:

INSERT INTO emp_scd(empno,ename,hiredate) 
       SELECT empno,ename,hiredate 
       FROM 
       OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=D:\Data Migration;',
       'SELECT * FROM Output.txt')
但它抛出了如下错误:

Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" 
reported an   error. The provider did not give any information about the error.

Msg 7321, Level 16, State 2, Line 1
An error occurred while preparing the query "SELECT * FROM Output.txt" for execution
against OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)". 
我启用了Microsoft.ACE.OLEDB.12.0的允许进程,但仍然出现了该错误。对于同样的问题,可能的解决方案是什么?我无法找出哪里出了问题

请提供一些相同的建议


谢谢

可能重复的@ling.s-我没有使用Excel,我使用的是一个平面文件(.txt)。这句话有用吗,还是突然出现了?检查此处的连接字符串:@ElectricLlama-该语句在我使用SQL Server 2008时确实有效,但当我切换到SQL Server 2012时,它给了我此错误。感谢您的链接,它似乎包含了一些有用的信息。新的SQL Server是安装在新的服务器中还是安装在现有的服务器上?新服务器是32位还是64位?旧服务器是32位还是64位?如果是新服务器,是否安装了ACE驱动程序?无论是CSV还是XLS,您都应该检查引用的帖子,因为它可能是完全相同的问题-无法访问该文件。