Integration Services 项目中的ssis完成数据库备份

1.创建一个Integration Services 项目;

2.新建一个包;

3.拖数据流任务到上面;

4.右击 ->选择编辑 ,到编辑界面,添加ado.net源 和ado.net目标;

5.设置ado.net源的数据访问模式为sql,书写select语句;

6.目标数据库建立连接配置,建立好关联;

7. 控制页面,右击选择添加变量 ,作用域为包名,为string类型

8. 编辑expresss,注意编写的是数据流任务的express,而不是包的表达式。 例如:select * from tableName where id<@id,其中@id为变量名。

9.c#调用代码 

Microsoft.SqlServer.Dts.Runtime.Application ac = new Microsoft.SqlServer.Dts.Runtime.Application();
            Microsoft.SqlServer.Dts.Runtime.Package pc = ac.LoadPackage(@"...\Package1.dtsx", null, false);
            pc.Variables["id"].Value = "20";//注意,一定要是string的20
            Microsoft.SqlServer.Dts.Runtime.DTSExecResult ResultStatus
                = pc.Execute(null,null,null,null,null);
            DateTime Pstarttime = pc.StartTime;
            DateTime Pstoptime = pc.StopTime;

            if (ResultStatus.Equals(Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success))
            {
                MessageBox.Show("成功");
            }
            else
            {
                MessageBox.Show("失败" + ResultStatus.ToString());
            } 

 

添加脚本任务, 添加一个脚本任务,选择中转,选择要转换的列,创建转换后的列,编辑脚本,建立转换之前的和转换之后的关系代码。

添加聚合 ,拖放聚合到设计界面,设置好group by和sum等。

 

关于数据库连接以及修改的问题:

创建包之前,在数据源中创建好连接,然后设计包的时候连接直接可以选择创建好的连接来使用,不需要为每个包都创建单独的连接,如果要修改包的连接,只要在设计界面中修改就行了,但是如果包的数量很多的话 ,每个包都打开重新设置,比较麻烦,这时候可以使用包配置来快速解决。

包配置方法:

1. 包创建好之后(选择好了数据源), 控制流界面右击->包配置,打开向导,选择xml文件,选择环境变量、数据源中的连接字符串、数据库名、用户名、密码等,完成。

这样包执行的时候就会读取配置文件中的配置数据来执行。

2.如果配置文件已经创建好,下个包只要选择该配置文件即可使用。

3.关于配置包,选择连接属性只需要选择:InitialCatalog、Password、ServerName、UserName即可。

4.如果要修改数据库连接,既要连接到其他数据库,只要修改上面选择的项对应的 <ConfiguredValue>...</ConfiguredValue> 即可,其他的不能修改,否则会报错。

你可能感兴趣的:(integration)