私はいくつかのパラメータを持つSQLストアドプロシージャを持っており、いくつかのパラメータに対して(同じ)行からいくつかのカラムを使用して呼び出す必要があります。ここでは、現在の実装では、(存在する未使用の列/パラメータを、含みません)、次のようになります。これは、複数の選択の改良であるストアドプロシージャのパラメータとして行のいくつかの列を使用する
DECLARE @id int;
select @id = min(id) from Table_1;
declare @param1 nvarchar(10), @param2 nvarchar(10);
select @param1 = param1, @param2 = param2 from Table_1 WHERE [email protected];
EXEC [dbo].otherProc @param1, @param2;
を、私はせずにこれを行う方法があるかどう思って助けることができません変数(@idを除く)。 EXECステートメントで直接選択しても機能しないようです(あるいは、正しい構文がわからないかもしれません)。
を://msdn.microsoft.com/en-us/library/bb510489.aspx F = 255&MSPPError = - ? 2147217396 –
プロシージャを変更して、 '@ id'パラメータだけを受け入れ、他のコードと一緒にプロシージャ内の選択を実行することができます.Oracleでは、単一の変数/パラメータをaの行として指定できる' RowType '特定のテーブルが、afaik、SQL Serverはこれを持っていません。 – gmiley
通常のストアドプロシージャの@gmileyは良い考えですが、私のケースではotherProcはCLR(C#コードから自動生成されます)であるため、コードを悪化させるだけです。 – MASQ