解決策を見つけるためにあなたのサポートが必要です。
テキスト ファイルにエクスポートする必要があるストアド プロシージャのセットが 10 個あります。10 個のプロシージャはすべて同じ列セットを返します (呼び出しパラメーターのみが異なります)。
解決方法がわかりません。
ストアド プロシージャの出力からタブ区切りのテキスト ファイルにデータをエクスポートする方法を教えてください。
また、可能であればSSISパッケージでも教えてください。
ありがとう
解決策を見つけるためにあなたのサポートが必要です。
テキスト ファイルにエクスポートする必要があるストアド プロシージャのセットが 10 個あります。10 個のプロシージャはすべて同じ列セットを返します (呼び出しパラメーターのみが異なります)。
解決方法がわかりません。
ストアド プロシージャの出力からタブ区切りのテキスト ファイルにデータをエクスポートする方法を教えてください。
また、可能であればSSISパッケージでも教えてください。
ありがとう
ここで簡単な解決策。
各 SP について:
最後に、各ファイルをメモ帳で開き、結果を単純に連結します。
編集
たとえば、ストアド プロシージャが 10 個ある場合は、次のようにします。
出力用の一時テーブルを作成する
CREATE TABLE #output (...)
10INSERT...EXEC
を使用して一時テーブルを埋めます
INSERT INTO #output EXEC MySP1 ...
GO
INSERT INTO #output EXEC MySP2 ...
GO
INSERT INTO #output EXEC MySP3 ...
GO
...
INSERT INTO #output EXEC MySP10 ...
GO
クエリを実行SELECT * FROM #output
編集2
出力一時テーブルにデータの取得元 (SP) の情報が必要な場合は、INSERT...EXEC ステートメントを少し制御するために、SP に別の列を追加できます。
それを行いたいが SP 出力を制御できない場合、1 つの方法は のデフォルト値を制御することであり#output
、別の方法は中間結果用に別の一時テーブルを追加することです。私は2番目のものを使用します:
たとえば、テーブル名を識別子として、出力用の一時テーブルを作成します。
CREATE TABLE #output (spname sysname, ...)
中間結果用の一時テーブルを作成する
CREATE TABLE #temp (...)
10INSERT...EXEC
を使用して中間を埋めてからテーブルを出力します
TRUNCATE TABLE #temp
INSERT INTO #temp EXEC MySP1 ...
GO
INSERT INTO #output
SELECT spname = 'MySP1', * FROM #temp
GO
TRUNCATE TABLE #temp
INSERT INTO #temp EXEC MySP2 ...
GO
INSERT INTO #output
SELECT spname = 'MySP2', * FROM #temp
GO
...
クエリを実行SELECT * FROM #output