0

数人のユーザーがデータベース内のテーブルを変更できるようにする必要があります。できれば統合パッケージの一部として、変更をライブ データベースに送信できるようにする必要があります。

さらに説明させてください:

あるデータベース システムから別のデータベース システムへの自動インポート タスクがあり、途中でデータ変換が行われます。

このタスクの一部として、最終的なインポートの前にさまざまなチェックが実行され、不完全または不正確なデータを含むすべての行が拒否テーブルに送信され、インポート テーブルから削除されます。

再ステージングしてライブデータベースに送信する前に、拒否テーブルから欠落/不正確なエントリを表示および修正できる上級ユーザーを数人許可する必要があります。(当然、提出前に再チェックされ、それでも間違っている場合は再却下されます)。

ローカル PC からこのパッケージを実行しているユーザーに特定のテーブル (MyDatabase.dbo.Reject_Table など) の内容を表示するには、SSIS で何をする必要があるか教えてください (もちろん、パッケージはサーバー上にあります)。 )。

次に、テーブルの内容を変更する機能が必要です。一度に 1 行ずつ、またはまとめて変更できます。気にしない)。

それが完了すると、「続行」または「次へ」タイプのボタンを押すと、パッケージの残りの部分が引き続き実行されます。

私が苦労しているのはインタラクティブなステージだけです。アドバイスをいただければ幸いです。

ありがとうクレイグ

4

1 に答える 1

2

これは、SSIS の非ネイティブ機能です。

スクリプト タスクには、GUI コンポーネントを含め、ほとんど何でも記述できます。(私はかつて音楽を再生するパッケージを持っていました)。データ フローには、コンポーネントを通過する各行を編集するスクリプト コンポーネントがあります。

なぜこれが悪い考えなのか

適合性 - これは実際には SSIS の目的ではありません。遭遇する最大の課題は、データ フローがデータの形状に密接に結び付いていることです。Customer の拒否テーブルは、Phone の拒否テーブルとはおそらく異なります。

コスト - 上級ユーザーが SSIS パッケージを実行できるようにするにはどうすればよいですか? 答えが SSIS をマシンにインストールすることである場合、SQL Server の運用ライセンスを探しています。これは、SQL Server 2005-2008R2 ではソケットあたり 8k から 23k 程度であり、SQL Server 2012 以降ではコアあたり非常識です。

より良いアプローチとは

いつものように、解決できるまで問題を小さなタスクに分解します。私は2つの問題の声明を出すだろう

  1. データ スチュワードとして、不完全なデータを修正 (編集) して、データをアプリケーションにインポートできるようにする必要があります。
  2. Xとして、顧客に(または理由が何であれ)適切に請求できるように、修正された拒否されたデータをインポート(ワークフロー)する機能が必要です。

データの編集。編集機能を提供するために、基本的な Web ページまたはシック クライアント アプリを作成します。DataGridViewは、その1 つの方法です。カスタム開発をやめて、Access フロント エンドをテーブルに貼り付けて、それを介してデータを編集できるようにすることもできます。

修正したデータをインポートします。これは私が SSIS を使用する場所ですが、排他的ではない可能性があります。おそらく、再処理の準備ができているかどうかを示す列をすべての拒否テーブルに追加することを検討します。リジェクト テーブルごとに、準備完了のフラグが立てられた行を探すパッケージを作成します。おそらく、最初に削除するパターンを使用して、フラグが設定されたデータを削除し、それを運用テーブルに挿入するか、さらに修正するために拒否テーブルに戻します。パッケージを起動するメカニズムは、理にかなったものであれば何でもかまいません。怠け者なので、

  1. パッケージを実行する SQL エージェント ジョブがあり、
  2. そのジョブを開始できるストアド プロシージャを作成する
  3. そのストアド プロシージャのセキュリティをデータ スチュワードに付与する
  4. スチュワードに大きな赤いボタンを提供しますImport。これには、編集の質問をどのように解決したかによって、物理的にどのように実装されるかが異なります。
于 2013-05-15T12:30:38.660 に答える