Это не должно восприниматься как ответ, а как попытка углубиться в реальную проблему. В настоящее время это то, как я интерпретирую выполняемые действия
Начиная с исходной таблицы
id_1 id_2 Value Result
1004 1 10 NULL
1004 1 30 NULL
1004 2 100 NULL
1005 1 90 NULL
1005 1 5 NULL
1005 1 5 NULL
После update table set result = dbo.SKU(1004, 2)
это станет
id_1 id_2 Value Result
1004 1 10 40
1004 1 30 40
1004 2 100 40
1005 1 90 40
1005 1 5 40
1005 1 5 40
После update table set result = dbo.SKU(1004, 1)
это станет
id_1 id_2 Value Result
1004 1 10 100
1004 1 30 100
1004 2 100 100
1005 1 90 100
1005 1 5 100
1005 1 5 100
После update table set result = dbo.SKU(1005, 1)
это станет (останется)
id_1 id_2 Value Result
1004 1 10 100
1004 1 30 100
1004 2 100 100
1005 1 90 100
1005 1 5 100
1005 1 5 100
и как-то после этого результат делится на id_2
id_1 id_2 Value Result
1004 1 10 100
1004 1 30 100
1004 2 100 50
1005 1 90 100
1005 1 5 100
1005 1 5 100
Очевидно, что моя интерпретация и то, что действительно происходит, не совпадают (по крайней мере, я на это надеюсь).