sql >> Databáze >  >> RDS >> Sqlserver

Spusťte uloženou proceduru v jiné uložené proceduře na serveru SQL

Pokud chcete svým druhým SP provést pouze některé specifické operace a nepožadujete zpět hodnoty od SP, pak jednoduše udělejte:

Exec secondSPName  @anyparams

Jinak, pokud potřebujete hodnoty vrácené vaším druhým SP ve vašem prvním SP, vytvořte dočasnou proměnnou tabulky se stejným počtem sloupců a se stejnou definicí vráceného sloupce druhým SP. Pak můžete získat tyto hodnoty v prvním SP jako:

Insert into @tep_table
Exec secondSPName @anyparams

Aktualizace:

Chcete-li předat parametr druhému sp, postupujte takto:

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

Exec secondSPName @id

Aktualizace 2:

Předpokládejme, že vaše druhé sp vrátí Id a Name kde typ id je int a name je z varchar(64) typ.

Nyní, pokud chcete vybrat tyto hodnoty v prvním sp, vytvořte dočasnou table proměnnou a vložte do ní hodnoty:

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

Select * From @tep_table

To vám vrátí hodnoty vrácené druhým SP.

Doufám, že to odstraní všechny vaše pochybnosti.



  1. Oprava chyby R2 2008, která porušuje RCSI

  2. SQL nezobrazuje hodnoty null v dotazu nerovná se?

  3. Výběr COUNT(*) pomocí DISTINCT

  4. SQL Server sp_msforeachtable použití k výběru pouze těch tabulek, které splňují určitou podmínku