2016-10-31 13 views
0

私はDBAに慣れていないので、SQLの人はあまりありません。マルチステップ・スキーマの変更を繰り返す方法(ETLスキーマの変更?)

私は新しい列、テーブル、およびリレーションシップの追加に続いて古いテーブル、列、および関係を削除する必要があるデータベースを再構成したいと考えています。 3つのステップのプロセスが順調に進んでいるようです。古いデータの一部を使用して新しいデータをフックする新しいもの

  • 実行SSISを追加する

    1. 変更スキーマ。
    2. 古いものを削除するようにスキーマを変更します。

    私はスキーマを維持するために、VS 2015でのSQLデータベースプロジェクトを使用して、スキーマを使用していますが、DBスキーマを更新するために比較します。可能であれば、それを反復可能または自動化したいので、生産現場以外のデータベースでそれをテストして、右に行く:スキーマの変更 - > ETL->スキーマの変更を実行することができます。 ETL内からスキーマ変更を適用する方法はありますか?これには手動操作が必要ですか? 2つのスキーマをファイルに格納してからVSを発行したり比較したりする以外にも適用できますか?

  • 答えて

    1

    あなたがやりたいことをできるようにするSQLタスクがあります。テーブルを変更して(列を追加する)、古い列から新しい列にデータを移動してから、古い列を削除したいとします。

    1) Alter table tableA add column .. 
    2) update table tableA set .. 
    3) alter table tableA drop column... 
    

    コードを実行する前に、慎重にテストしてください。

    +0

    おかげベンジャミン。 SSISとデータベースプロジェクトをスキップする必要があると思いますか?理論的にはSQLの新人のための素敵な松葉杖のように見えますが、現実についてはそれほど確かではありません。 – jlear

    +0

    ああ、あなたはSSISのSQLタスクについて話していますか?気にしないで。 – jlear

    0

    これは機能しました。 ETLの例を次に示します。 データフローのDelayValidationをtrueに設定し、データベースが静的でないため、データフロー内の一部の操作に対してValidateExternalMetadataを無効にすることが重要です。

    Example Control Flow that Modifies Schema

    関連する問題