无法使用SQL Server导入导出向导执行数据加载

时间:2018-09-07 09:47:05

标签: sql-server ssis ssms oledb

我正在尝试将数据从一台服务器导出到另一台服务器。我已经使用自定义SQL来获取数据并在目标位置创建了一个表:

SELECT [Vantive OrgID]= end_user_vantive_id, [City]= end_user_city,
[State]= end_user_state, [Postal]= end_user_postal_code, [Country] = end_user_country,
[Area]= st_area, [Region]= st_region, [Territory]= st_territory,
[Geo]= st_geo, [Sales Order Number]= sales_order_number,
[Date]= order_date, [Year]= year_num, [Month]= month_num,
[Quarter]= datepart(q,order_date),
FROM scaall.vf_bookings WITH (NOLOCK)
WHERE ISNUMERIC(sales_order_number) = 1 and order_date >= '1/1/15';

很少有数据被复制并抛出以下错误消息。

  

正在复制到[dbo]。[SCASalesOrderExport_20180907](错误)消息错误   0xc0202009:数据流任务1:SSIS错误代码DTS_E_OLEDBERROR。一个   发生OLE DB错误。错误代码:0x80004005。 OLE DB记录是   可用。来源:“ Microsoft SQL Server本机客户端11.0”   结果:0x80004005说明:“ TDS流中的协议错误”。一个   OLE DB记录可用。来源:“ Microsoft SQL Server本机   客户端11.0“结果:0x80004005说明:” TDS中的协议错误   流”。OLEDB记录可用。来源:“ Microsoft SQL Server   本机客户端11.0“结果:0x80004005说明:”协议错误   在TDS流中。” OLE DB记录可用。来源:“ Microsoft SQL   服务器本机客户端11.0“结果:0x80004005说明:   “通信链接失败”。 OLE DB记录可用。资源:   “ Microsoft SQL Server本机客户端11.0”结果:0x80004005   说明:“ TCP提供程序:现有连接被强制关闭   由远程主机。 “。(SQL Server导入和导出向导)

     

错误0xc0047038:数据流任务1:SSIS错误代码   DTS_E_PRIMEOUTPUTFAILED。 Source-查询上的PrimeOutput方法   返回错误代码0xC0202009。组件返回了失败代码   当管道引擎调用PrimeOutput()时。的意思   故障代码由组件定义,但错误是致命的,并且   管道停止执行。可能发布了错误消息   在此之前,有关失败的更多信息。 (SQL Server   导入和导出向导)

1 个答案:

答案 0 :(得分:0)

您可以尝试使用 bcp 实用程序来代替使用SQL Server导入和导出向导(更多信息here)。

bcp 是为此目的而创建的命令行实用程序:在不同数据库之间有效地传输数据。

导出查询数据

bcp "select * from [SRC_DB_NAME].[SCHEMA_NAME].[TABLE_NAME]" queryout c:\data.bcp -c -T -U<login_id> -P<password> -S<src_server_name\instance_name>

导入数据

bcp [DEST_DB_NAME].[SCHEMA_NAME].[TABLE_NAME] in c:\data.bcp -c -T -U<login_id> -P<password> -S<dest_server_name\instance_name>