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

时间:2012-01-16 23:29:59

标签: c# sql sql-server ssis

我是SSIS的新手。

我有一个c#/ sql server后台。

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

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

我不知道SSIS是否可以实现这一点,但如果能指出正确的方向,那将是最有帮助的。

2 个答案:

答案 0 :(得分:5)

SSIS可以做任何事情!

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

ISNULL(ColumnName)? "纳达" :ColumnName

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

希望它有所帮助。

答案 1 :(得分:1)

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

  1. 使用BULK INSERT将文件加载到数据库服务器上的临时登台表中;此临时表中的每个列都可以合理地容忍它们包含的数据,例如varchar(max)
  2. 编写验证例程以更新临时表中的数据并仔细检查以确保根据您的需要对其进行格式化,然后将列转换为最终格式并将行推送到目标表中。 / LI>

    我喜欢这种方法,主要是因为BULK INSERT对于它吐出的错误可能有点神秘;使用临时登台表,可以更轻松地查看数据集并动态修复错误,而不是通过文本文件生根。