如何在导入数据库之前验证列

本文关键字:验证 数据库 导入 | 更新日期: 2023-09-27 18:20:24

我是SSIS的新手。

我有一个c#/sql服务器背景。

我想知道是否有可能在数据进入数据库之前对其进行验证。我正在从|(管道)分隔的文本文件中获取文本。

例如,如果某个数据点是null,则将其更改为0;或者,如果某一数据点的长度是0,则更改为"nada"

我不知道SSIS是否可以做到这一点,但如果你能为我指明正确的方向,那将是非常有帮助的。

如何在导入数据库之前验证列

使用SSIS,一切皆有可能!

在平面文件数据源之后,使用派生列转换。派生一个新列,表达式如下所示。

ISNULL(列名)?"nada":列名

然后在数据源目标中使用此新列。

希望能有所帮助。

我不知道你是否已经下定决心使用SSIS,但我通常用于将文本文件数据导入数据库的基本方法通常需要两个阶段:

  1. 使用BULK INSERT将文件加载到数据库服务器上的临时暂存表中;这个暂存表中的每一列都对它们所包含的数据具有合理的容忍度,比如varchar(max)
  2. 编写验证例程以更新临时表中的数据,并仔细检查以确保其格式符合您的需要,然后将列转换为最终格式,并将行推入目标表

我喜欢这种方法,主要是因为BULK INSERT可能对它抛出的错误有点神秘;有了临时暂存表,与通过文本文件查找相比,查看数据集并实时修复错误要容易得多。