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

Udfør en lagret procedure i en anden lagret procedure i SQL server

Hvis du kun ønsker at udføre nogle specifikke operationer af din anden SP og ikke kræver værdier tilbage fra SP, skal du blot gøre:

Exec secondSPName  @anyparams

Ellers, hvis du har brug for værdier returneret af din anden SP i din første, så opret en midlertidig tabelvariabel med lige mange kolonner og med samme definition af kolonneretur af anden SP. Så kan du få disse værdier i første SP som:

Insert into @tep_table
Exec secondSPName @anyparams

Opdatering:

Gør dette for at overføre parameter til anden sp:

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

Exec secondSPName @id

Opdatering 2:

Antag, at din anden sp returnerer Id og Name hvor type id er int og name er af varchar(64) type.

nu, hvis du vil vælge disse værdier i første sp, så opret en midlertidig table variabel og indsæt værdier i den:

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

Select * From @tep_table

Dette vil returnere dig værdierne returneret af anden SP.

Håber, dette fjerner al din tvivl.



  1. Hvordan Cosh() virker i PostgreSQL

  2. Indrullering af SQL Server i en distribueret XA-transaktion

  3. Er der en måde i ORACLE at forbinde flere rækkelinjer til en enkelt ved at bruge to tabeller, hvor de endelige værdier er adskilt med kommaer?

  4. Hibernate, Postgres &Array Type