2

他の多くのストアド プロシージャ内で呼び出すことができる、再利用可能でやや動的な TSQL コードを作成したいと考えていますが、SQL Server でこれを実装する方法に苦労しています。

環境は、共通の ETLManagement DB からこれらのモジュラー ストアド プロシージャのいくつかを呼び出す独自のラッパー ストアド プロシージャを持つ、多くの分散ソース システム データベースです。ラッパー sproc は、これらの共通/再利用可能な sproc のいくつかを呼び出し (動的に定義された制御テーブルで操作を実行するため)、次に INSERT INTO ステートメント (ソース システムによって所有および定義されます)、さらにいくつかの共通/re ステートメントを呼び出します。 -使用可能なsproc。

主な障害の 1 つは、ネストされた sproc で変数を宣言できないように見えることです。すべてのソース システム sproc が読み取れるグローバル変数を宣言するにはどうすればよいですか?

一般的なsprocを使用してこれを行うのが最善の方法ですか、それともより良い方法がありますか?

(TSQL プログラミングの私の素朴さを許してください。私は今まで他のツールで ETL を行ってきました。)

4

2 に答える 2

3

これは、ストアド プロシージャ間でデータを共有する方法の非常に包括的なリストです。

http://www.sommarskog.se/share_data.html

于 2010-02-12T20:41:55.607 に答える
2

グローバル変数の概念をルックアップ テーブルに入れます。それはあなたが持っている唯一の同等品です。

User Defined Functionsさらに、SPROC よりもはるかに多くの場所で使用できるため、さらに検討することもできます。この記事は、長所/短所の良い参考資料です。

http://www.informit.com/articles/article.aspx?p=31724

率直に言って、真のグローバル変数に関心がある場合は、SQL Server Integration Services パッケージへの移行を検討することをお勧めします。あなたの要件を考えると、それはあなたのお茶のカップよりも多いかもしれません.

http://msdn.microsoft.com/en-us/library/ms141026.aspx

于 2010-02-12T19:56:34.623 に答える