2016-04-04 1 views
0

My Clientは毎月私にC#経由でSQLにインポートするファイルを送信します。彼の要件に応じて列の数が変わります。列は基本的に口座番号です。彼はお金を受け取るので、もし彼がどんな口座でもお金を受け取らなければ、彼はその欄を削除します。名前PAN ACC1 AMTの ROW2 - - 名前PAN ACC2Excelファイルをインポートしても列の数は変化し続ける

は、だから私は、私はSQL ROW1にインポート

Excelなどの転置方式でデータベースが 名前PAN ACC1、ACC2 ACC3 ACC4に

ファイル入力しようとしましたAmt ROW3 - 名前PAN Acc3 Amt

しかし、私は何ヶ月もSQLクエリを実行するには時間がかかりすぎます。任意のヘルプをお願いします

+1

実行するSQLクエリは何ですか?私たちはそれを効率的にすることができます。 – DhruvJoshi

+0

これはSSISパッケージで行いますか? – GabrielVa

答えて

0

私はこれまで、可変カラムを扱っているときには、いくつかの理由から自分で少しのピクルに入ることができました。たとえば、新しいアカウントが登場するたびにテーブルに列を追加するだけでは、列エントリなどとは対照的に行エントリを使用する必要がありません。データの結合など他の問題が発生します。

これまでSQL Serverを使用してきた優れたアプローチは、SQL ServerデータベースでXMLデータ型としてデータを使用し、Cross Applyを使用してデータ結合に対処するStored Procsを作成することです。また、データに対してXMLスキーマ検証を使用することもできます。

だから多分それはあなたのためのオプションです。

希望に役立ちます。

0

「SQLテーブルへのデータのインポート」以外のロジックを処理していない場合は、C#を使用すると、不要な余分なレイヤーが追加されるため、最も効率的なソリューションではない場合があります。私はBCPを個人的に好みます。これは組み込みコマンドであり、SQLジョブを毎月実行するようにスケジュールすることができます。 Powershellはかなり良いですが、あなたはそれがかなり簡単で軽量であることをインストールする必要があります。最後にSSISも動作しますが、Microsoft SQL Server - Developerエディション& Enterpriseエディションが必要です。あなたが望むなら、BCPまたはPowershellでお手伝いできます。

関連する問題