.sqlファイルを含むフォルダがあります。クエリごとに1つのファイル。私はすべてのクエリ/ SQLファイルを実行し、それらをcsvとして保存したいと思います。SQL Server 2008スクリプトでフォルダを実行する方法
私の環境では無効になっているwindows cliを使用せずに自動化する方法はありますか?私はSQL Server Management Studioを持っています。
.sqlファイルを含むフォルダがあります。クエリごとに1つのファイル。私はすべてのクエリ/ SQLファイルを実行し、それらをcsvとして保存したいと思います。SQL Server 2008スクリプトでフォルダを実行する方法
私の環境では無効になっているwindows cliを使用せずに自動化する方法はありますか?私はSQL Server Management Studioを持っています。
VB.NETコンソールアプリケーションを作成します。
問題のフォルダから.SQLで終わるファイルのリストを生成します。個々のSQLに各ファイルの内容
ロード
は、データセットに結果を格納し、それぞれのSQLコマンドを実行するコマンド。各データセットのテーブルごとに
、各.csvファイルのために新しい.csvファイル
を作成するには、データテーブル内の各セルを反復処理する必要がある、との.csvファイルのためのエスケープ適切な活用していきます。
ビジネスインテリジェンス開発スタジオ(BIDS)がインストールされている場合は、SSISを使用してこのタスクにアプローチします。
まず、SQLファイルを含むフォルダを指す「Foreachループコンテナ」を作成し、変数を使用して各ファイル名を取得します。
次に、フラットファイル接続を作成し、 'Connection String'プロパティをファイルの場所を含む変数に設定します。
次に、 'Execute SQL Task'コンポーネントを使用して 'SQLSourceType'を 'File Connection'に設定し、 'FileConnection'を前の手順で作成したものに設定します。
最後に、データが返される方法に応じて、結果セットが小さい場合、行または単一の列のみの場合、結果を変数に保存し、 'データフロー'タスクで「派生列」コンポーネントを作成し、その変数の内容をCSVファイルにエクスポートします。また、データセットが大きい場合は、結果をテンポラリテーブルにダンプし、「OLE DB Source」と「OLE DB Destination」を使用して、結果セット全体をCSVに直接プッシュすることもできます。
このアプローチは、リモートマシンまたはサーバー自体から実行できるという利点があります。また、SQLエージェントジョブを使用してその実行を自動化することもできます。
スクリプトフォルダ内の各ファイルに対して、sqlcmdまたはbcpコマンドと組み合わせて 'for'を使用します。
私はこのための畳み込まれていない解決策はないと思います。良い答え –
お返事いただきありがとうございます。私はビジネス・オブジェクトの非常に古いコピーを見つけ出し、問題を解決しました。すべての問合せを一度に実行し、複数のExcelファイルとして保存できます。この場合、csvを別々にしてもよいでしょう。 – Lennart