Нужен запрос на обновление временной таблицы в хранимой процедуре - PullRequest
1 голос
/ 01 июня 2019

У меня есть временная таблица #Temp_SalesOrder в хранимой процедуре SP_SalesOrder, и она имеет 5 столбцов.Я использую курсор для циклического добавления этой временной таблицы.

Я вставляю значения в эту временную таблицу (первые 4 столбца) с помощью другой хранимой процедуры Sp_SalesOrderValues.Мне нужно обновить последний столбец в этой временной таблице как значение, выбранное в переменной курсора.Но у меня нет уникальных столбцов во временной таблице, где условие для запроса на обновление.Вставка происходит строка за строкой, поэтому мне нужно обновить значение этого столбца как строку.

Я делюсь своим запросом Мне нужно получить ответ, подобный приведенной ниже структуре, но я всегда получаю 80 как полное значение столбца...

Пожалуйста, помогите ..

IF OBJECT_ID('tempdb..#Temp_SalesOrder ') IS NOT NULL
    DROP TABLE #Tbl_SalesOrderChildRef

CREATE TABLE #Temp_SalesOrder 
(
    Pk INT,
    ProductMasterId INT,
    Name VARCHAR(50),               
    AllocatableQty NUMERIC(18, 0),
    SalesOrderSkuRate NUMERIC(18, 3) NULL
) 

-- Selecting SalesOrderSkuRate  using a select query
OPEN @curSalesOrderChild

FETCH NEXT FROM @curSalesOrderChild INTO @productMasterId, @Name, @SalesOrderSkuRate

WHILE @@FETCH_STATUS = 0
BEGIN
    INSERT INTO #Tbl_SalesOrderChildRef 
        EXEC Sp_SalesOrderValues
             @SkuMasterID = @productMasterId,
             @Name = @Name,
             @AllocatableQty = @AllocatableQty

    UPDATE #Tbl_SalesOrderChildRef 
    SET SalesOrderSkuRate = @SalesOrderSkuRate  ---Need a where condition for updating row by row now it updating last SalesOrderSkuRate to entire column that is my issue 

    FETCH NEXT FROM @curSalesOrderChild INTO @productMasterId, @Name, @AllocatableQty, @SalesOrderSkuRate
END

CLOSE @curSalesOrderChild
DEALLOCATE @curSalesOrderChild  

Вывод:

pk  ProductMasterId     Name    AllocatableQty  SalesOrderSkuRate 
-------------------------------------------------------------------
1   50                   A1       10                    25
2   81                   A2       20                    75
3   92                   A3       30                    80
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...