Хрнимая процедура - как вызвать для все элементов?
От: maslukov  
Дата: 09.04.07 13:51
Оценка:
Здравствуйте!

Есть следующая проблема.

База данных содержит таблицу (Table) вида

ID (ключ), Размер (int), ParentID( ссылка на родителя).

Есть хранимая процедура которая считат сумму Размеров

ALTER PROCEDURE dbo.GetTotalSize 
    (
    @parameter1 int
    )    
AS

/* SET NOCOUNT ON */ 
DECLARE @ret int;
SET @ret = (SELECT SUM(Size) FROM Table WHERE ParentID = @parameter1);

RETURN @ret


Как применить данную процедуру ко всем элементам относщимся к некоторому набору?
Т.е. как реализовать процедуру Update которая вызовет процедуру GetTotalSize для всех элементо удовлетвгоряющих уловию.
т.е.

ALTER PROCEDURE dbo.UpdateProject
    (
    @ProjectID int
    )
AS

UPDATE Table
SET SizeSLOC = /* ЗДЕСЬ ХОЧЕТСЯ ВЫЗВАТЬ хранимую процедуру GetTotalSize и передать туда ID элемента) что то типа EXEC GetTotalSize ID
WHERE ParentID = @ProjectID

/* SET NOCOUNT ON */ 
RETURN


Есс-но UpdateProject не работает — не могу понять как написать правильно.
Заранее спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.