Запрос на возврат внутренних сведений о сохраненной функции в базе данных SQL Server - PullRequest
1 голос
/ 26 апреля 2010

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 26 апреля 2010

Если вы можете каким-либо образом выполнить запрос к вашей базе данных и если у вас есть необходимые разрешения для чтения представлений системного каталога, то вы можете запустить этот запрос, чтобы получить имя, определение (код 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')
0 голосов
/ 26 апреля 2010

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

sp_helptext fnBlaDeBla

0 голосов
/ 26 апреля 2010

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

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

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

...