получение обновленного значения из запроса UPDATE - PullRequest
1 голос
/ 16 июня 2011

У меня есть запрос ОБНОВЛЕНИЯ:

UPDATE   FKMS_GNST_Transaction_Details
   SET Received_Quantity=Received_Quantity+(
                       CASE
                       WHEN (@int_Updated_Qty)>=(GTD.Quantity-GTD.Received_Quantity)
        THEN GTD.Quantity-GTD.Received_Quantity
                       ELSE (@int_Updated_Qty)
                       END)
      ,@int_GNST_Reference_Id=GTD.Transaction_Detail_Id   
  FROM FKMS_GNST_Transaction_Details GTD
 INNER JOIN #tbl_transactions tmp
    ON tmp.Transaction_id=GTD.Transaction_id
   AND GTD.Item_id=tmp.Item_id

Я хочу получить количество, которое добавляется в поле Received_Quantity.Это если (@int_Updated_Qty)>=(GTD.Quantity-GTD.Received_Quantity) then GTD.Quantity-GTD.Received_Quantity другой мудрый @int_Updated_Qty.

Как мы можем принять это значение (в переменную или любым другим способом)?Пожалуйста, помогите.

1 Ответ

1 голос
/ 16 июня 2011

Используйте предложение OUTPUT

UPDATE   FKMS_GNST_Transaction_Details
   SET Received_Quantity=Received_Quantity+(
                       CASE
                       WHEN (@int_Updated_Qty)>=(GTD.Quantity-GTD.Received_Quantity)
        THEN GTD.Quantity-GTD.Received_Quantity
                       ELSE (@int_Updated_Qty)
                       END)
      ,@int_GNST_Reference_Id=GTD.Transaction_Detail_Id   

--start gbn code
OUTPUT INSERTED.Received_Quantity
--end gbn code

  FROM FKMS_GNST_Transaction_Details GTD
 INNER JOIN #tbl_transactions tmp
    ON tmp.Transaction_id=GTD.Transaction_id
   AND GTD.Item_id=tmp.Item_id

Результаты OUTPUT могут

  • перейти в таблицу (реальную, временную или переменную)
  • клиенту в виде набора записей

Вы не можете быть назначены напрямую локальной переменной

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...