Wywołanie procedury dla każdego ID i przekazanie wyniku w tej samej tabeli

0

Cześć.
Mam dwie procedury. Jedna duża, do zwracania danych do grida i druga mniejsza do zwracania konkretnego stringa.

W dużym skrócie w wiekszej procedurze znajduje się select, przykładowo:

SELECT
[tableName].[ID]
[tableName].[a]
[tableName].[b]
[tableName].[c]
INTO #Results
FROM [tableName]
(...)

Chciałbym do tabeli tymczasowej #Results dorzucić kolumnę w której znajdzie się wykonanie mniejszej procedury dla każdego ID (przyjmuje jako parametr ID).
Wynik byłby następujący:

 |      ID    |     a       |     b       |     c       |     NowaKolumna
 |     12     |     'x'     |     'y'     |     'z'     |     wynik z EXECUTE proc2 12`
 |     33     |     'x'     |     'y'     |     'z'     |     wynik z EXECUTE proc2 33`

Jak się za to zabrać? Kombinować z cursorem?
Pozdrawiam

2

Skoro ta mniejsza procedura zwraca jedną wartość to zrób z niej funkcję i użyj CROSS APPLY.

0

Nie wiem co to za proceduta i jak zwraca dane więc pozostaje uruchamiać ją dla każdego id.

Ewentualnie przerobić na funkcję skalarną i prosty update:

update #Results set Nowakolumna=dbo.funkcja(id)

-- lub od razu w select:
SELECT
[tableName].[ID]
[tableName].[a]
[tableName].[b]
[tableName].[c]
dbo.funkcja(id) as NowaKolumna
INTO #Results
FROM [tableName

1 użytkowników online, w tym zalogowanych: 0, gości: 1