Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Eseguire una procedura memorizzata in un'altra procedura memorizzata nel server SQL

Se desideri eseguire solo alcune operazioni specifiche dal tuo secondo SP e non richiedi valori dal SP, esegui semplicemente:

Exec secondSPName  @anyparams

Altrimenti, se hai bisogno di valori restituiti dal tuo secondo SP all'interno del tuo primo, crea una variabile di tabella temporanea con lo stesso numero di colonne e con la stessa definizione di colonna restituita dal secondo SP. Quindi puoi ottenere questi valori nel primo SP come:

Insert into @tep_table
Exec secondSPName @anyparams

Aggiornamento:

Per passare il parametro alla seconda sp, procedere come segue:

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

Exec secondSPName @id

Aggiornamento 2:

Supponiamo che la tua seconda sp restituisca Id e Name dove tipo di id è int e name è di varchar(64) digitare.

ora, se vuoi selezionare questi valori nella prima sp, crea una table temporanea variabile e inserire i valori in essa:

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

Select * From @tep_table

Questo ti restituirà i valori restituiti dal secondo SP.

Spero che questo chiarisca tutti i tuoi dubbi.