У меня есть функция `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
@Larry Это действительно зависит от того, как используется таблица, если есть много объемных вставок/обновлений, и очень немногие чтения из таблицы, которую вы используете, будут лучше, но если данные довольно статичны и запрашиваются против в значительной степени необходимость в вызове функции для каждой возвращаемой строки должна быть более эффективной. – domager
@domager: теперь у вас есть обработка RBAR для оставшегося вычисленного столбца поверх второго, записывается в таблицу для DiffMinuti в худшем случае ... – gbn