Запрос для возврата внутренних деталей о сохраненной функции в базе данных SQL Server

Мне предоставили доступ к базе данных SQL Server, которая в настоящее время используется приложением сторонних производителей. По сути, у меня нет документации относительно того, как то приложение хранит данные или как это получает его.

Я могу понять несколько вещей на основе названий различных таблиц и параметров, которые пользовательские функции берут и возвращают, но я все еще получаю ошибки в любом повороте.

Я думал, что было бы действительно полезно, если бы я видел то, что сохраненные функции делали с параметрами, данными для возврата вывода. Прямо сейчас все, что я смог выяснить, - то, как запросить для входных параметров и выходных столбцов.

Есть ли любой встроенный information_schema таблица, которая выставит то, что функция делает между вводом и выводом?

1
задан marc_s 26 April 2010 в 04:58
поделиться

3 ответа

Если вы можете каким-то образом выполнить запрос к своей базе данных и если у вас есть необходимые разрешения для чтения представлений системного каталога, то вы можете запустить этот запрос, чтобы получить имя, определение (код SQL) и еще несколько битов информации о ваших функциях:

SELECT 
    obj.name ,
    obj.type ,
    obj.type_desc ,
    obj.create_date ,
    obj.modify_date ,
    m.definition ,
    m.is_schema_bound 
FROM 
    sys.objects obj
INNER JOIN 
    sys.sql_modules m ON obj.object_id = m.object_id
WHERE 
    obj.type IN ('AF', 'FN', 'FS', 'FT', 'IF', 'TF')
2
ответ дан 3 September 2019 в 01:01
поделиться

Если у вас есть соответствующие разрешения, вы можете просто написать сценарий для всех хранимых процедур и функций:

Щелкните правой кнопкой мыши свою базу данных в SSMS (SQL Server Management Studio), выберите «Задачи» - > Сгенерируйте сценарии, убедитесь, что ваша база данных выделена, и нажмите «Далее». Убедитесь, что выбраны параметры для сценария хранимых процедур и функций.

Вы можете установить SSMS (клиентские инструменты), не требуя лицензии SQL Server.

0
ответ дан 3 September 2019 в 01:01
поделиться

Другой способ - sp_helptext , который покажет вам источник переданного SP или UDF;

sp_helptext fnBlaDeBla

0
ответ дан 3 September 2019 в 01:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: