我有一個函數`DiffMinuti',我在計算列內使用它。我想聲明它是可變的,只調用一次並優化代碼。感謝您的幫助:SQL Server:如何在計算列內聲明函數作爲變量
ALTER TABLE Ticket ADD MinutiAllaScadenza AS (" +
CASE
WHEN StatoTicketID > 3 AND dbo.DiffMinuti(DataArrivo, DataObiettivo) <0 THEN 10000000
ELSE dbo.DiffMinuti(DataArrivo, DataObiettivo)
END)
謝謝! 問候
@domanager:非常感謝你! 我並不認爲它如此複雜......您認爲計算'MinutiAllaScadenza'計算字段的最有效方法是什麼? 你所描述的那個,或者我目前使用的那個,雙重調用函數'Diffminuti'? 非常感謝你,你是非常徹底和專業! – Larry 2012-02-13 13:49:12
@Larry它真的取決於表的使用方式,如果有大量的批量插入/更新和從表中讀取很少數據的方法會更好,但是如果數據相當靜態並且被查詢很大程度上,不必爲返回的每一行調用函數應該更有效率。 – domager 2012-02-13 14:19:10
@domager:你現在有餘數的計算列在最後的計算列在2ndary寫入DiffMinuti的表在最壞的情況下... – gbn 2012-02-13 14:21:11