2016-11-03 6 views
0

現在、いくつかのバックグラウンドプロセスを実行し、2つの結果テーブルの1つを返すストアドプロシージャを使用しています。SQL Server 2008 R2およびそれ以降のストアドプロシージャからの出力を抑制する

正常に動作する場合は、成功を示す1つの列テーブルが表示されます。それ以外の場合は、さまざまなエラーデータを含む4つの列テーブルが表示されます。

.netからコードを実行するだけでも問題ありませんが、別のストアドプロシージャ内から実行する必要があります。私は出力を必要としませんが、私はバックグラウンドプロセスが必要です。私は通常、テーブルに出力を挿入しますが、この場合、出力の列が結果に依存して変化するため、挿入することができるテーブルを定義できません。

最も簡単な答えは、バックグラウンドSPの出力を一貫性があるように書き換えることですが、これはオプションではありません。私はUDFの内部でこれをラップしようとしましたが、ストアドプロシージャは関数から呼び出すことはできません。

私は最終的にそれが2016年

までのSQL Server 2008 R2のバージョンで動作しなければならないものは何でも使うソリューション誰もが何か提案はありますか?

ありがとう、

マット。

+0

プロシージャにselectステートメント(これは明らかに)がある場合は、そのステートメントを呼び出す内容に応じて異なる動作をさせることはできません。プロシージャを変更してパラメータの値に基づいて異なる動作をさせることもできますが、もちろんプロシージャと新しいパラメータを変更する必要があります。 –

答えて

1

以下のハックを使用して内部SPの結果を一時テーブルに挿入するSPを作成することができます。

Insert results of a stored procedure into a temporary table

ブロックが出力に含まあなたは何のデータを返すことができないという場合。

+0

私はそのリンク上のOPと同じ問題を抱えています。この問題は、定義が変更されると事前にテーブルを定義できないという事実に基づいています。 –

+0

オープン・ロー・セット・オプションは、いくつかの異なるサーバー上で実行されるため、使用できません。データベースのどこかに接続文字列を格納することが不十分で、それに伴う固有のセキュリティリスクが導入されていないため、私はちょっと立ち往生しています。 –

+0

私はそれが一部の人々に役立つと思うので、私はこれを投票していますが、それは私の問題を解決していません。どうもありがとう。 –

関連する問題