sql >> データベース >  >> RDS >> Sqlserver

SQLServerの別のストアドプロシージャでストアドプロシージャを実行する

    2番目のSPで特定の操作のみを実行し、SPから値を戻す必要がない場合は、次のようにします。

    Exec secondSPName  @anyparams
    

    それ以外の場合、最初のSP内の2番目のSPによって返される値が必要な場合は、同じ数の列を持ち、2番目のSPによる列の戻りの定義が同じである一時テーブル変数を作成します。次に、これらの値を最初のSPで次のように取得できます。

    Insert into @tep_table
    Exec secondSPName @anyparams
    

    更新:

    パラメータを2番目のspに渡すには、次のようにします。

    Declare @id ID_Column_datatype 
    Set @id=(Select id from table_1 Where yourconditions)
    
    Exec secondSPName @id
    

    更新2:

    2番目のspがIdを返すとします。 およびName ここで、idのタイプ intです およびname varchar(64)のものです タイプ。

    ここで、最初のspでこれらの値を選択する場合は、一時的なtableを作成します。 変数とそれに値を挿入します:

    Declare @tep_table table
    (
      Id int,
      Name varchar(64)
    )
    Insert into @tep_table
    Exec secondSP
    
    Select * From @tep_table
    

    これにより、2番目のSPによって返された値が返されます。

    願わくば、これですべての疑問が解消されます。



    1. LIKEワイルドカードを使用して列を検索(大文字と小文字を区別しない)するにはどうすればよいですか?

    2. MariaDBのINSTR()とLOCATE()の違い

    3. Oracle(ORA-02270):この列リストエラーに一致する一意のキーまたは主キーがありません

    4. データプロジェクトが失敗する10の方法