0

以下の手順を実行するために、SSIS で C# スクリプトをつなぎ合わせようとしています。

  1. SQL Server 接続を確立する
  2. SQL Server テーブルの内容全体を に読み込むか、DataTable行ごとに処理して新しいテーブルにエクスポートします (どの方法を使用すればよいかわかりません....)。
  3. 行の各列を検索し、その行の長さが 1 で値が「-」の場合は、ダッシュを NULL に置き換えます。ここで重要なのは、各列名を宣言したくないということです。
  4. 次に、レコードを別の SQL Server テーブルに書き戻します。

私はC#が初めてなので、これを行う最も簡単な方法を探しています。

ありがとう!

4

1 に答える 1

1

あなたが説明することを行うためのSSISアプローチは

  1. ソース サーバーを指す OLE DB 接続マネージャーをパッケージに追加します。
  2. コントロール フローにデータ フロー タスクを追加する
  3. SELECT基準を満たす列を引き戻すステートメントを作成します。SELECT col1, col2 FROM dbo.MyTable T WHERE T.col1 = '-' OR T.col2 = '-';実際の実装は異なる場合があります。そのクエリを OLE DB ソース コンポーネント内に配置します。
  4. 派生列コンポーネントを追加して、- を NULL 値にします。
  5. 新しいテーブルに書き込む OLE DB 宛先を追加する

ただし、さらに良いアプローチは、このデータをそのまま保存せず、テーブルに配置する前にクリーンな状態に保つことです。それをむき出しにして、SQL実行タスクを使用してクエリを起動し、サーバー上のデータを消去することを検討するでしょう。行ごとの処理を行う必要はありません。セット (長さが 1 で値が-) を記述するので、セットを修正します ( UPDATE T SET col1 = NULLIF(Col1, '-'), ... FROM dbo.MyTable T)

于 2013-10-03T16:28:53.027 に答える