Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie kann man die Ergebnisse einer gespeicherten Prozedur innerhalb einer anderen gespeicherten Prozedur durchlaufen ... ohne Cursor?

Dies ist möglicherweise nicht die effizienteste, aber ich würde eine temporäre Tabelle erstellen, um die Ergebnisse der gespeicherten Prozedur zu speichern, und diese dann in einem Join gegen die Zieltabelle verwenden. Zum Beispiel:

CREATE TABLE #t (uniqueid int)
INSERT INTO #t EXEC p_YourStoredProc

UPDATE TargetTable 
SET a.FlagColumn = 1
FROM TargetTable a JOIN #t b 
    ON a.uniqueid = b.uniqueid

DROP TABLE #t