powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Таблична ф-я вместо представления?
12 сообщений из 12, страница 1 из 1
Таблична ф-я вместо представления?
    #38303492
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разбирая артефакты довольно старой базы, наткнулся на примерно вот такой код.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE FUNCTION [SchemaName].[ReturnTableNameFields]()
RETURNS @RESULT TABLE  ([ID] INT, [code] VARCHAR(50), [DESC] VARCHAR(250))
AS
BEGIN
  INSERT INTO @RESULT ([ID], [code], [DESC])	
    SELECT [ID], [code], [DESC] FROM [TableName]
  RETURN
END



В [TableName] гораздо больше полей. Т.е. подобные функции, очевидно, заменяют по функционалу вьюхи.

У меня теоритический вопрос. Для чего может использоваться такой подход? В чём его плюсы и минусы?
...
Рейтинг: 0 / 0
Таблична ф-я вместо представления?
    #38303506
Фотография Сергей Викт.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CammomileРазбирая артефакты довольно старой базы, наткнулся на примерно вот такой код.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE FUNCTION [SchemaName].[ReturnTableNameFields]()
RETURNS @RESULT TABLE  ([ID] INT, [code] VARCHAR(50), [DESC] VARCHAR(250))
AS
BEGIN
  INSERT INTO @RESULT ([ID], [code], [DESC])	
    SELECT [ID], [code], [DESC] FROM [TableName]
  RETURN
END



В [TableName] гораздо больше полей. Т.е. подобные функции, очевидно, заменяют по функционалу вьюхи.

У меня теоритический вопрос. Для чего может использоваться такой подход? В чём его плюсы и минусы?

Как минимум возможность использовать переменные и инструкцию DECLARE
...
Рейтинг: 0 / 0
Таблична ф-я вместо представления?
    #38303510
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е.?
...
Рейтинг: 0 / 0
Таблична ф-я вместо представления?
    #38303525
Фотография Сергей Викт.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cammomileт.е.?
Ну в представлении нельзя использовать переменные. А в функции можно.
Аль я ошибаюсь жестоко?:)
...
Рейтинг: 0 / 0
Таблична ф-я вместо представления?
    #38303526
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я спросил кокнретно про вот эту структуру. Тут не используются переменные, для создания фильтра? или для каких то вычислений.
...
Рейтинг: 0 / 0
Таблична ф-я вместо представления?
    #38303532
Фотография Сергей Викт.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CammomileУ меня теоритический вопрос. Для чего может использоваться такой подход? В чём его плюсы и минусы?
Вы просто спросили так) Простите.. Я имел ввиду не только применительно к данной функции.
Именно в данном случае плюсов и минусов сказать не могу.
Можно посмотреть план выполнения запроса к представлению и к функции с какими-либо параметрами, может что прояснится)
...
Рейтинг: 0 / 0
Таблична ф-я вместо представления?
    #38303535
Мистер Хенки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cammomile,

это не itv функция, а многострочная табличная функция, так что не может быть использована как представление.
Вот это itl функция или параметризованное представление:
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE FUNCTION [SchemaName].[ReturnTableNameFields]()
RETURNS table
AS


  return(  SELECT [ID], [code], [DESC] FROM [TableName]);
  



В вашем случае вы получаете грубо говоря табличную переменную, как результат и отдельный план выполнения для функции, в случае с itl вы получите просто параметризованное представление, которое обработается сервером как и обычное представление.
...
Рейтинг: 0 / 0
Таблична ф-я вместо представления?
    #38303538
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cammomile,

Может, просто заглушка...
...
Рейтинг: 0 / 0
Таблична ф-я вместо представления?
    #38303540
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CammomileРазбирая артефакты довольно старой базы, наткнулся на примерно вот такой код.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE FUNCTION [SchemaName].[ReturnTableNameFields]()
RETURNS @RESULT TABLE  ([ID] INT, [code] VARCHAR(50), [DESC] VARCHAR(250))
AS
BEGIN
  INSERT INTO @RESULT ([ID], [code], [DESC])	
    SELECT [ID], [code], [DESC] FROM [TableName]
  RETURN
END



В [TableName] гораздо больше полей. Т.е. подобные функции, очевидно, заменяют по функционалу вьюхи.

У меня теоритический вопрос. Для чего может использоваться такой подход? В чём его плюсы и минусы?
в multiline utf внутренний запрос не встраивается во внешний, а выполняется независимо. таким образом можно во время выполнения внешнего запроса организовать нечто вроде неявной временной таблицы
...
Рейтинг: 0 / 0
Таблична ф-я вместо представления?
    #38303737
Crimean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakill,

+1, помогает оптимизатор "обмануть", именно multi-line
но в результирующей таблице, при этом, обычно, primary key как минимум декларят
...
Рейтинг: 0 / 0
Таблична ф-я вместо представления?
    #38303755
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Учитывая то, что внутри этих функций селекты из справочников в которых буквально десятки строк, смысл всей этой эквиибристики ускользает. Видимо просто игры чьего-то разума.
...
Рейтинг: 0 / 0
Таблична ф-я вместо представления?
    #38303829
Crimean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CammomileУчитывая то, что внутри этих функций селекты из справочников в которых буквально десятки строк, смысл всей этой эквиибристики ускользает. Видимо просто игры чьего-то разума.

ну, тут одно из двух. или действительно эти функции используются в сложных запросах, где сложные выражения из ваших справочников сваливали план или кто-то слишком увлекся унификацией кода..
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Таблична ф-я вместо представления?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]