Aşağıdaki gibi bir güncelleme bildirimi çalıştırırken, bana şöyle bir hata mesajı alıyorum:
Pencereli işlevler yalnızca SELECT veya ORDER BY deyimlerinde görünebilir.
UPDATE dbo.Dim_Chart_of_Account
SET Account_Order = LAG([Account_Order]) OVER (ORDER BY [Account_SKey])
Bunun, aşağıdaki gibi güncellenebilir bir cte kullanarak kolayca çözülebileceğini biliyorum.
WITH my_cte AS (
SELECT [Account_Order], LAG([Account_Order]) OVER (ORDER BY [Account_SKey]) AS acc_order_lag
FROM Dim_Chart_of_Account
)
UPDATE my_cte
SET [Account_Order] = acc_order_lag
Benim sorum, bir güncelleme deyiminde buna izin verilmemesi için herhangi bir neden var mı, bir çözüm olarak güncellenebilir bir cte kullanmaktan kaçınmalı mıyım?
Benim endişem pencere işlevlerini güncelleme deyimleri ile kullanırken sorunları olduğunu ve bu nedenle bu kabul edilebilir bir yöntem veya kaçınılması gerektiğini anlamak istiyorum.