VS2005 数据库间转移数据(SSIS)

SSIS 设计简介

 

1.选择Business Intelligence Project Integration Servers Project

 

2.右键单击新建数据源

 

3.新建SSIS

 

4.右键单击“连接管理器”空白处,选择“从数据源新建连接”。

 

5.把所需要的数据源选中(按Ctrl键可多选),单击“确定”。

 

6.从工具箱中拖拽控件到右边窗体中

 

7.双击控件进行编辑

7-1编辑“执行SQL任务”

 

l  Connection右边选择要连接的DB(此处DB来自于所建的数据源连接)。

l  SQLStatement右边单击 ,编辑SQL语句。

l  修改NameDescription

 

 

7-2编辑“数据流”

双击“数据流”控件后,后调到数据流操作界面,如下:

添加OLE DB源数据和OLE DB目标数据流。

 

l  双击OLE DB源数据,进行编辑。

l  OLE DB连接管理器中选择Connection.

l  “数据访问模式”选择SQL命令

l  编辑SQL命令(红色框)。

 

 

双击OLE DB目标数据流,进行编辑。

l  OLE DB连接管理器中选择对应QSMS Server DB

l  “数据访问模式”选择表或视图-快速加载

l  选择要导入数据的表。

点击“映射”,对于列名一样的列,系统会自动对应起来,列明不一致的需要手动选择(例如红色框中的TotalQtyQty对应就需要手动选择)。

 

8.拖拽绿色箭头到对应执行下一步操作的控件上。

 

9.双击绿色箭头选择成功约束还是失败约束执行下一步。

 

10.设定Package 公用密码

10-1.属性中ProtectionLevel选择EncryptAllWithPassword

10-2.点击右边的按钮输入密码

 

11.创建Job执行SSIS

l  将生成的<Package filename>.dtsx文件拷贝到Server上。

Eg.

 

l  双击该文件,会调用DtExecUI.exe打开. 选择“命令行”,复制命令行

 

方式1.SQLAgent Job中用xp_cmdshell呼叫dtexec.exe来执行SSIS Package:

declare @str varchar(8000)

set @str='dtexec /FILE "D:\SSISPackage\NB1TransferFUJIDID.dtsx" /DECRYPT qms**** /MAXCONCURRENT " -1 " /CHECKPOINTING OFF  /REPORTING EWCDI'

exec master..xp_cmdshell @str

 

方式2.Windows Schedule Job中用batch呼叫dtexec.exe来执行SSIS Package:

<filename>.bat中内容为:

dtexec /FILE "D:\SSISPackage\NB1TransferFUJIDID.dtsx" /DECRYPT qms**** /MAXCONCURRENT " -1 " /CHECKPOINTING OFF  /REPORTING EWCDI

exec master..xp_cmdshell @str

 

注意其中红色部分/DECRYPT qms****是需要手动添加的。

 

 

 

12..OLE DBSourcestored procedure

Stored procedure 中有用到temp table, SSIS可能会抓不到output column

Solution: Exec stored procedure 之前, 加上SET FMTONLY OFF

 

13. 記錄SSIS 執行狀況

 13-1. Log會記錄在sysdtslog90 table; 參考MSDB.dbo.sysdtslog90, create sysdtslog90在別的DB.

 

13-2.SSIS->Logging

 

 

 

2.選擇 Connection

1.選擇SSIS log provider for SQL Server

 

 

 

13-2. 選擇要記錄的事件, 通常記OnError

 

 

 

原文地址:https://www.cnblogs.com/cuishao1985/p/1343369.html