У кого-нибудь есть хорошее дерево решений для принятия решения о том, когда использовать представление и когда использовать табличную функцию в SQL Server?
Функция SQL Server или функция таблицы?
Ответ 1
Хотя любое представление почти тривиально может быть преобразовано в встроенную функцию с табличной оценкой, обратное неверно.
Если конструкцию необходимо параметризовать, используйте функцию inline table-value. Встроенные функции table-value - это в основном параметризованные представления с точки зрения оптимизатора, способного объединить их с представлениями и проталкивать вещи. Многозадачные табличные функции вовсе не похожи на встроенные табличные функции.
Если вы не можете сделать это с помощью встроенной функции, ориентированной на таблицу, используйте многозначную табличную функцию.
Ответ 2
Определенные вещи, которые вы не можете сделать в представлении (например, переменные таблицы, промежуточные результаты, прежде чем вы вернетесь к набору результатов и т.д.)... если вам это не нужны, просмотрите, если хотите, sproc/udf: -)
Ответ 3
Хорошо, я дам использование, которое мы делаем. У нас есть таблицы, но мы никогда не обращаемся к таблицам, а о представлениях о таблицах. Это просто проблема с безопасностью.