sql >> Database >  >> RDS >> Sqlserver

Een opgeslagen procedure uitvoeren in een andere opgeslagen procedure in SQL-server

Als u slechts enkele specifieke bewerkingen door uw tweede SP wilt uitvoeren en geen waarden terug van de SP nodig hebt, doe dan gewoon:

Exec secondSPName  @anyparams

Anders, als u waarden nodig hebt die door uw tweede SP binnen uw eerste worden geretourneerd, maak dan een tijdelijke tabelvariabele met een gelijk aantal kolommen en met dezelfde definitie van kolomretour door de tweede SP. Dan kun je deze waarden in de eerste SP krijgen als:

Insert into @tep_table
Exec secondSPName @anyparams

Bijwerken:

Ga als volgt te werk om een ​​parameter door te geven aan de tweede sp:

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

Exec secondSPName @id

Update 2:

Stel dat uw tweede sp Id retourneert en Name waar type id is int en name is van varchar(64) typ.

nu, als je deze waarden in eerste sp wilt selecteren, maak dan een tijdelijke table variabele en voeg er waarden in:

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

Select * From @tep_table

Hiermee krijgt u de waarden terug die door de tweede SP worden geretourneerd.

Ik hoop dat dit al je twijfels wegneemt.



  1. Alles wat u moet weten over SQL Server JOINS

  2. Specifieke pakketversies installeren met pip

  3. Hoe een databaseschema in Oracle naar een dumpbestand te exporteren

  4. Hoe TO_CHAR() werkt in MariaDB