Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Executar um procedimento armazenado em outro procedimento armazenado no SQL Server


Se você deseja apenas realizar algumas operações específicas pelo seu segundo SP e não exige valores de volta do SP, basta fazer:
Exec secondSPName  @anyparams

Caso contrário, se você precisar de valores retornados pelo seu segundo SP dentro do seu primeiro, crie uma variável de tabela temporária com números iguais de colunas e com a mesma definição de retorno de coluna pelo segundo SP. Então você pode obter esses valores no primeiro SP como:
Insert into @tep_table
Exec secondSPName @anyparams

Atualização:

Para passar o parâmetro para o segundo sp, faça o seguinte:
Declare @id ID_Column_datatype 
Set @id=(Select id from table_1 Where yourconditions)

Exec secondSPName @id

Atualização 2:

Suponha que seu segundo sp retorne Id e Name onde tipo de id é int e name é de varchar(64) tipo.

agora, se você deseja selecionar esses valores no primeiro sp, crie uma table temporária variável e insira valores nela:
Declare @tep_table table
(
  Id int,
  Name varchar(64)
)
Insert into @tep_table
Exec secondSP

Select * From @tep_table

Isso retornará os valores retornados pelo segundo SP.

Espero que isso tire todas as suas dúvidas.