添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • 将文件中的数据导入数据库时,需要判断数据库表中已存在该数据的话,将数据更新;不存在的话,增量插入
  • 工具:SQL Server ,Microsoft SQL Server Management Studio ,Visual Studio (SSDT)

下图为上传数据的SSIS流程包,下面分步阐述

首先,在数据库中新建两张表,临时表:[IMP_DJ],正式表:[DJ]

注意:字段与待上传的文件字段一致

USE [Test]
/****** Object:  Table [dbo].[DJ]    Script Date: 2020/3/27 16:55:58 ******/
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[IMP_DJ](
 [A] [nvarchar](255) NULL,
 [B] [nvarchar](255) NULL,
 [C] [nvarchar](255) NULL
) ON [PRIMARY]
CREATE TABLE [dbo].[DJ](
 [A] [nvarchar](255) NULL,
 [B] [nvarchar](255) NULL,
 [C] [nvarchar](255) NULL
) ON [PRIMARY]

 打开SSDT工具,新建一个SSIS项目

将执行SQL任务拖入控制流面板中,Connection连接上数据库,更改Name名称

SQL Statement中写:

truncate table IMP_DJ 

目的是清空临时表[IMP_DJ]

再拖入一个Foreach循环容器,将前面的执行SQL任务与循环容器用蓝色箭头连上

双击打开循环容器,在常规中更改容器的名称

在集合中选择Foreach 文件枚举器,枚举器配置中选择待上传文件的文件夹位置

在变量映射中新建变量,值为待上传文件所在文件夹位置

然后将数据流拖入循环容器中,双击进入数据流控制面板。在数据流面板中拖入excel源和OLE DB目标

excel源中新建Excel连接管理器,连接上文件中任意一个excel文件

OLE DB目标新建连接管理器,连接上数据库,选择临时表[IMP_DJ]

在映射中可以看到excel源与OLE DB目标的字段都一一关联上

返回控制流面板,向循环容器中拖入文件系统任务,将其与数据流连接上

Operation中选择移动文件,目标连接选择文件上传好以后移动到的备份文件夹,源连接选择原文件夹位置的变量

最后,在控制流面板中拖入执行SQL任务编辑器,放在循环容器下面,并将其与循环容器连接上

Connection选择数据库,SQLStatement中写进

-- 删除正式表中已有的临时表中的数据
delete from DJ 
where A in (select distinct A from IMP_DJ)
-- 将临时表的数据插入到正式表中
insert into DJ select * from IMP_DJ

执行一下就OK啦~~~

此方法可以完美的做到先判断文件夹中的文件正式表中是否存在,不存在的增量插入,存在的更新

若只是向批量上传文件夹中的文件请参考我另一篇博客:https://blog.csdn.net/weixin_41542593/article/details/104988366

感谢阅读!!!

将文件中的数据导入数据库时,需要判断数据库表中已存在该数据的话,将数据更新;不存在的话,增量插入 工具:SQL Server ,Microsoft SQL Server Management Studio ,Visual Studio (SSDT)下图为上传数据的SSIS流程包,下面分步阐述首先,在数据库中新建两张表,临时表:[IMP_DJ],正式表:[DJ]注意:字段与... 当你把数据从其他数据库, 或者是文本文件之类的其他数据导入到目的数据库时, 有时希望在导入处理中, 能够实现"数据存在更新不存在导入" 在之前, 一般是通过导入临时表, 然后再判断处理导入正式表的, 在SQL Server 2005中, SSIS可以在导入处理时直接完成这种处理. 下面具体演示一下如何用SSIS完成这样的处理 -- 1.
       当通过用SSDT开发完SSAS项目并发布之后,源数据中的数据变化之后,SSAS数据库中对应的数据和维度等都是不变的,此时需要通过SSIS建立“Analysis Services 处理任务”的自动执行任务,才能使SSAS数据库做到数据同步。 1、通过SSDT新建SSIS项目,拖入“Analysis Services 处理任务”的组件,双击编辑 2、点击“处理设置”,点击“新建”...
实现方式:         若要动态更新变量,可以为变量创建配置,将这些配置部署到包中,然后在部署包时更新配置文件中的变量值。这样,在运行时,包就可以使用更新后的变量值。         下面通过一个简单的例子来说明如何实现动态更新变量值。 例子要求:         把一张Order表从远程计算机实例“TRIY-2FE792BB5D\SQL2008DE” 根据需要输入(Order.d...
在Package中声明一个variable,在package运行的过程中,SSIS如何update Variable? 第一种方法:使用 Script Task 来更新Variable的值 1,创建一个variable ,VariableName是VarCode,并将变量传递到脚本的ReadWriteVariables数组中。 2,在C#脚本中,SSIS提供两种方式访问变量...