Пример слияния T SQL необходим для лучшего понимания.

Следующее:

MERGE dbo.commissions_history AS target
USING (SELECT @amount, @requestID) AS source (amount, request)
ON (target.request = source.request)
WHEN MATCHED THEN
    UPDATE SET amount = source.amount
WHEN NOT MATCHED THEN
    INSERT (request, amount)
    VALUES (source.request, source.amount);

from https://stackoverflow.com/a/2967983/857994— довольно изящный способ вставки/обновления ( и удалить с некоторой дополнительной работой). Мне трудно следовать, даже после некоторого поиска в Google.

Может кто-нибудь, пожалуйста:

  • объясните это немного простыми словами - документация MSDN изуродовала мой мозг в этом случае.
  • покажите мне, как его можно изменить, чтобы пользователь мог вводить значения для суммы и запроса вместо того, чтобы выбирать их из другого местоположения базы данных?

По сути, я хотел бы использовать это для вставки/обновления из приложения C# информации, взятой из XML-файлов, которые я получаю. Итак, мне нужно понять, как я могу сформулировать запрос вручную, чтобы получить проанализированные данные в базу данных с помощью этого механизма.

39
задан Community 23 May 2017 в 12:17
поделиться