sql >> Base de Datos >  >> RDS >> Sqlserver

Ejecutar un procedimiento almacenado en otro procedimiento almacenado en el servidor SQL

Si solo desea realizar algunas operaciones específicas con su segundo SP y no requiere valores del SP, simplemente haga lo siguiente:

Exec secondSPName  @anyparams

De lo contrario, si necesita valores devueltos por su segundo SP dentro de su primero, cree una variable de tabla temporal con el mismo número de columnas y con la misma definición de devolución de columna por el segundo SP. Luego puede obtener estos valores en el primer SP como:

Insert into @tep_table
Exec secondSPName @anyparams

Actualización:

Para pasar el parámetro al segundo sp, haga esto:

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

Exec secondSPName @id

Actualización 2:

Suponga que su segundo sp devuelve Id y Name donde tipo de id es int y name es de varchar(64) tipo.

ahora, si desea seleccionar estos valores en el primer sp, cree una table temporal variable e inserte valores en ella:

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

Select * From @tep_table

Esto le devolverá los valores devueltos por el segundo SP.

Espero, esto despeje todas tus dudas.