SQL Server 2005 имеет отличные представления sys.XXX в системном каталоге, которые я часто использую.
Что меня сбивает с толку: почему есть представление «sys.procedures», чтобы увидеть информацию о ваших хранимых процедурах, но нет представления «sys.functions», чтобы увидеть то же самое для ваших сохраненных функций?
Никто не использует сохраненные функции? Я считаю их очень удобными, например, для вычисляемых столбцов и тому подобного!
Есть ли какая-то конкретная причина отсутствия sys.functions, или это просто что-то, что не считалось достаточно важным для включения в представления каталога sys ?? Доступно ли это в SQL Server 2008 ??
Привет, Марк
sys.functions
. У васsys.foreign_keys
и нетsys.primary_keys
. В любом случае, я прошу вас, ребята, использовать открытый канал Microsoft, чтобы предлагать и предлагать новые функции для будущих версий SQL Server на connect.microsoft.com/SQLServer/Feedback. Я уже добавил отзыв о sys.functions на connect.microsoft.com/ SQLServer / feedback / details / 1127920Ответы:
Я считаю, что UDF очень удобны, и использую их постоянно.
Я не уверен, что Microsoft объясняет тем, что не включает эквивалент sys.functions в SQL Server 2005 (или SQL Server 2008, насколько я могу судить), но достаточно легко сделать свой собственный:
источник
Другой способ перечислить функции - использовать представления INFORMATION_SCHEMA.
Согласно веб-сайту Microsoft, «представления информационной схемы обеспечивают внутреннее, независимое от системной таблицы представление метаданных SQL Server. Представления информационной схемы позволяют приложениям работать правильно, хотя в базовые системные таблицы были внесены значительные изменения». Другими словами, базовые системные таблицы могут измениться по мере обновления SQL, но представления должны оставаться такими же.
источник
INFORMATION_SCHEMA
запрос возвращает очень интересные результаты вродеIS_DETERMINISTIC
(которые я хотел узнать).Это действительно в 2008 R2 в соответствии с тем, что SSMS генерирует при сценарии DROP функции:
источник
Он немного более подробный, но должен делать то же самое:
Насколько я понимаю, в SQL Server 2008 этого тоже нет.
источник
Это не добавляет ничего нового, но мне легче запомнить следующее:
источник
{ }
) на панели инструментов редактора , чтобы красиво формат и синтаксис выделить его!sys.objects
насколько это возможно.попробуй это :
источник
кстати, не хотели бы вы включить type = 'FS'?
то, что элемент в sys.objects соответствует моему UDF, который получен из внешней DLL
источник
Чтобы расширить ответ @LukeH, для возврата определений функций также требуется соединение с
sys.sql_modules
таблицей. Итак, запрос для этого:где выше отображается имя функции, ее определение и идентификатор объекта соответственно.
источник
Для более полного описания скалярных функций, включая владельца и возвращаемый тип:
источник
SQL 2000
конкретная, небольшая корректировка имени объекта:ИЛИ
источник