0

あるテーブルから別のテーブルにデータを移行するための自動化ツールを 1 つ開発しています。ここでは、ソース列と宛先列を入力パラメーターとして渡す関数または SP を探しています。ソース列データが宛先列にコピーできる場合、出力パラメーターが true を返すようにします。そうでない場合は、false を返す必要があります。

たとえば、ソース列が varchar で宛先列が整数の場合、スクリプトはソース列のすべてのデータが整数列に移動するのに十分かどうかをチェックし、出力フラグを返す必要があります。すべてのタイプのデータ型に対して、スクリプトがこのように機能することを望みます。どんな提案も役に立ちます。

4

2 に答える 2

1

SQL Server 2012 を使用している場合は、 TRY_CAST()TRY_CONVERT()、およびTRY_PARSE()を自由に使用できます (比較については、 blog.dbandbiの Biz Nigatu によるこの投稿を参照してください)。

とはいえ、切り捨てエラーをチェックする必要があります。たとえば、ターゲット データ型に変換して元に戻し、元の値と変換後の値を比較します。

過去に同様のツールを見たことがありますが、まだオンラインで無料で利用できないかどうかを確認することをお勧めします。購入するだけでも、独自のツールの開発とトラブルシューティングに費やす時間よりも安価になる場合があります。

于 2014-06-21T22:57:08.370 に答える
0

これには、EzAPI を使用してまとめた SSIS ソリューションがあります。GitHub に投稿しましたので、お気軽にご覧ください。

https://github.com/thevinnie/SyncDatabases

さて、あなたに関連する部分は、情報スキーマを使用して、ソースと宛先がスキーマの一致であることを確認するところです。そうでない場合、C# スクリプト タスクは、必要な列を作成、変更、または削除するステートメントを生成します。

EzAPI 部分は、SSIS パッケージをプログラムで生成できるため、SSIS で優れています。プロジェクトの要件として、毎回データをロードでき、ソースのスキーマ変更によってプロセスが中断されないようにする必要がありました。

コメントと推奨事項は大歓迎です。うまくいけばそれは役に立ちますが、私はあなたがINFORMATION_SCHEMA.COLUMNSどちらかの方法を見ていると思います.

于 2014-06-22T00:14:35.457 に答える