0

私は、約12個のパラメーターを持つストアドプロシージャを持つクライアントと協力しています。

データベース内のテーブルからパラメーター値を取得し、それらをストアドプロシージャにフィードして、数値を取得する必要があります。次に、この値をSELECTステートメントに結合する必要があります。

SPの結果をselectステートメントと結合するために一時テーブルを作成する必要があることは知っていますが、これはすべて私にとって新しいことであり、いくつかの助けを借りることができます。主に、フィールド値をSPにフィードする方法に焦点を当てています。また、Tempテーブルにいくつかのパラメーターをフィールドとして含めて、selectステートメントに結合できるようにします。

ありとあらゆる助けをいただければ幸いです。

ありがとうございました

4

2 に答える 2

2

宣言された変数のパラメーター値をキャプチャできます。何かのようなもの:

DECLARE @Parm1 int, @Parm2 varchar(50) -- Use appropriate names and datatypes

SELECT @Parm1 = Parm1ColumnName, @Parm2=Parm2ColumnName
FROM TableWithParmValues
-- Include a WHERE condition if appropriate

DECLARE @ProcOutput TABLE(outputvalue int) -- use appropriate names and datatypes to match output

INSERT @ProcOuptut
EXECUTE MyProc @ProcParm1 = @Parm1, @ProcParm2 = @Parm2 -- Use appropriate names

次に、@ ProcOutput一時テーブルと、必要に応じてSELECTでパラメーター変数を使用します。

于 2012-08-28T17:02:01.430 に答える
0

これは、回答としてより適切にフォーマットされたコメントです。

数値結果を他のデータと結合できるようにするために、一時テーブルまたはテーブル変数を作成する必要はありません。SELECT以下は、テーブルを明示的に作成せずにsを使用したさまざまな好奇心を示しています。

declare @Footy as VarChar(16) = 'soccer'
select * from (
  select 'a' as Thing, 42 as Thingosity
  union all
  select *
    from ( values ( 'b', 2 ), ( 'c', 3 ), ( @Footy, Len( @Footy ) ) ) as Placeholder ( Thing, Thingosity )
  ) as Ethel cross join
  ( select 42 as TheAnswer ) as Fred
于 2012-08-28T17:33:51.897 に答える