我正在尝试在 SSIS 中拼凑一个 C# 脚本来执行以下步骤:
- 建立 SQL Server 连接
- 要么将 SQL Server 表的全部内容读入
DataTable
,要么逐行处理并导出到新表(不确定使用哪种方法....) - 搜索一行中的每一列,如果该行的长度为 1 且值为“-”,则将破折号替换为 NULL。他们这里的关键是我不想声明每个列名。
- 然后将记录写回另一个 SQL Server 表。
我是 C# 新手,所以我正在寻找最简单的方法来做到这一点。
谢谢!
我正在尝试在 SSIS 中拼凑一个 C# 脚本来执行以下步骤:
DataTable
,要么逐行处理并导出到新表(不确定使用哪种方法....)我是 C# 新手,所以我正在寻找最简单的方法来做到这一点。
谢谢!
SSIS 做你所描述的方法是
SELECT
语句来拉回符合您的条件的列。SELECT col1, col2 FROM dbo.MyTable T WHERE T.col1 = '-' OR T.col2 = '-';
实际实施可能会有所不同。将该查询放在 OLE DB 源组件中但是,更好的方法是不存储这些数据,并在将其放入表中之前保持其清洁。除此之外,我可能会考虑使用执行 SQL 任务来触发查询以清理服务器上的数据。无需逐行处理。您描述了集合(长度为 1 且值为 的任何内容-
),因此修复集合 ( UPDATE T SET col1 = NULLIF(Col1, '-'), ... FROM dbo.MyTable T
)