包部署错误 - 将连接字符串更改为SQLNCLI10或查找并安装对SQLNCLI.1的支持?

Ste*_*eam 6 sql-server sql-server-2005 sql-server-2008

我试图在SQL Server代理下运行一个包.我的大多数错误消息表明我必须 - 将连接字符串更改为SQLNCLI10或查找并安装对SQLNCLI.1的支持.

我需要知道这个错误的含义.它是否像安装驱动程序和注册它一样简单,或者它不仅仅是驱动程序.这个问题会出现非司机相关的原因吗?我更改了错误中提到的提供程序,现在我收到了第一个错误后给出的新错误.

谢谢.

完全错误 -

Code: 0xC0209302     Source: MyPackage Connection manager "MyOleDBConnection"     Description: SSIS Error Code DTS_E_OLEDB_NOPROVIDER_ERROR.  The requested OLE DB provider SQLNCLI.1 is not registered. 
Error code: 0x00000000.  An OLE DB record is available.  Source: "Microsoft OLE DB Service Components"  Hresult: 0x80040154  Description: "Class not registered".  
End Error  

Code: 0xC020F42A     Source: MyPackage Connection manager "MyOleDBConnection"     Description: Consider changing the PROVIDER in the connection string to SQLNCLI10 or 
visit http://www.microsoft.com/downloads to find and install support for SQLNCLI.1.  
End Error  

Code: 0xC020801C     Source: MyPackage Log provider "SSIS log provider for SQL Server"     Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.  
The AcquireConnection method call to the connection manager "MyOleDBConnection" failed with error code 0xC0209302.  
There may be error messages posted before this with more information on why the AcquireConnection method call failed.  
COM error object information is available.  Source: "MyPackage"  error code: 0xC0209302  
Description: "Consider changing the PROVIDER in the connection string to SQLNCLI10 or 
visit http://www.microsoft.com/downloads to find and install support for SQLNCLI.1.  ".  
End Error  

Code: 0xC0209302     Source: MyPackage Connection manager "MyOleDBConnection"     Description: SSIS Error Code DTS_E_OLEDB_NOPROVIDER_ERROR.  
The requested OLE DB provider SQLNCLI.1 is not registered. Error code: 0x00000000.  
An OLE DB record is available.  Source: "Microsoft OLE DB Service Components"  Hresult: 0x80040154  Description: "Class not registered".  
End Error  

Code: 0xC020F42A     Source: MyPackage Connection manager "MyOleDBConnection"     Description: Consider changing the PROVIDER in the connection string to SQLNCLI10 or 
visit http://www.microsoft.com/downloads to find and install support for SQLNCLI.1.  
End Error  

Code: 0xC020801C     Source: DFT Insert Execution Log OLE_DST Insert SSIS Execution Log [25]     Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.  
The AcquireConnection method call to the connection manager "MyOleDBConnection" failed with error code 0xC0209302.  
There may be error messages posted before this with more information on why the AcquireConnection method call failed.  
End Error  

Code: 0xC0047017     Source: DFT Insert Execution Log SSIS.Pipeline     Description: component "OLE_DST Insert SSIS Execution Log" (25) failed validation and returned error code 0xC020801C.  
End Error  

Code: 0xC004700C     Source: DFT Insert Execution Log SSIS.Pipeline     Description: One or more component failed validation.  
End Error  

Code: 0xC0024107     Source: DFT Insert Execution Log      Description: There were errors during task validation.  
End Error  

DTExec: The package execution returned DTSER_FAILURE (1). 
Run Code Online (Sandbox Code Playgroud)

还有一个错误 -

Code: 0xC0202009     Source: MyPackage Connection manager "MyOLEDBConnection"     Description: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80040E4D.  
An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 10.0"  Hresult: 0x80040E4D  Description: "Login failed for user 'MyUser'.".  
End Error  

Code: 0xC020801C     Source: MyPackage Log provider "SSIS log provider for SQL Server"     Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.  The AcquireConnection 
method call to the connection manager "MyOLEDBConnection" failed with error code 0xC0202009.  There may be error messages posted before this with more information on why the AcquireConnection method 
call failed.  COM error object information is available.  Source: "MyPackage"  error code: 0xC0202009  Description: "SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80040E4D.  
An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 10.0"  Hresult: 0x80040E4D  Description: "Login failed for user 'MyUser'.".  ".  
End Error  

Code: 0xC0202009     Source: MyPackage Connection manager "MyOLEDBConnection"     Description: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80040E4D.  
An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 10.0"  Hresult: 0x80040E4D  Description: "Login failed for user 'MyUser'.".  
End Error  

Code: 0xC020801C     Source: DFT Insert Execution Log OLE_DST Insert SSIS Execution Log [25]     Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.  
The AcquireConnection method call to the connection manager "MyOLEDBConnection" failed with error code 0xC0202009.  There may be error messages posted before this with more information 
on why the AcquireConnection method call failed.  
End Error  

Code: 0xC0047017     Source: DFT Insert Execution Log SSIS.Pipeline     Description: component "OLE_DST Insert SSIS Execution Log" (25) failed validation and returned error code 0xC020801C.  
End Error  

Code: 0xC004700C     Source: DFT Insert Execution Log SSIS.Pipeline     Description: One or more component failed validation.  
End Error  

Code: 0xC0024107     Source: DFT Insert Execution Log      Description: There were errors during task validation.  
End Error  
Run Code Online (Sandbox Code Playgroud)

bil*_*nkc 15

了解问题

SQL Server Native Client提供程序是SQLNCLIOLE DB连接字符串中的*.

截至本帖子,SQL Server 2014的CTP2版本中没有包含SQLNCLI12.

这些提供程序通常可以与以前版本的SQL Server进行通信,但版本前向性较低(SQLNCLI11与2014年通信除外).

根本原因

您有一个OLE DB连接字符串使用该计算机上不存在的提供程序.也许您以2005格式构建了包,但是在2008实例上运行它.无论如何,您的连接字符串的格式为

Provider=SQLNCLI.1;Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
Run Code Online (Sandbox Code Playgroud)

需要更新以匹配计算机上的提供程序

Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
Run Code Online (Sandbox Code Playgroud)

通常可以通过明智地使用配置来解决这个问题