0

私はSQLについてあまり詳しくないので、答えを探すのが大変でした。間違った「表現」を使用している可能性があります。

ストアド プロシージャを実行する次のクエリがあるとします。

USE MyDB
SET NOCOUNT ON
    EXECUTE dbo.adm_ExecuteProcedure
        @installationID           = 12345,
        @monthOf                  = '03/01/2013'
GO

ステートメントを使用selectして 12345 を動的に検索できますか? 以下は機能しませんが、私がやろうとしていることです。

USE MyDB
SET NOCOUNT ON
    EXECUTE dbo.adm_ExecuteProcedure
        @installationID           = (select id from installs where name = 'foo'),
        @monthOf                  = '03/01/2013'
GO

ストアド プロシージャを編集する権限がありません。

4

4 に答える 4

4
declare @id int;

select  @id = id 
from    installs 
where   name = 'foo';

EXECUTE dbo.adm_ExecuteProcedure
    @installationID           = @id,
    @monthOf                  = '03/01/2013';
于 2013-04-02T15:30:22.283 に答える
0

変数に格納してみてください(構文はDBシステムによって異なります)

于 2013-04-02T15:30:50.337 に答える
0

まあ、あなたはそれを行うことができますが、ストアドプロシージャを呼び出すコードで...またはストアドプロシージャの任意のクエリでさえ、その場合、パラメーターはまったく必要ありません...

于 2013-04-02T15:29:55.673 に答える
0

できることは、変数を宣言し、select ステートメントからその変数で installationId を選択し、ストアド プロシージャの実行中にその変数を使用することです。わかりましたか。

于 2013-04-02T15:31:30.350 に答える