Мне предоставили доступ к базе данных SQL Server, которая в настоящее время используется приложением сторонних производителей. По сути, у меня нет документации относительно того, как то приложение хранит данные или как это получает его.
Я могу понять несколько вещей на основе названий различных таблиц и параметров, которые пользовательские функции берут и возвращают, но я все еще получаю ошибки в любом повороте.
Я думал, что было бы действительно полезно, если бы я видел то, что сохраненные функции делали с параметрами, данными для возврата вывода. Прямо сейчас все, что я смог выяснить, - то, как запросить для входных параметров и выходных столбцов.
Есть ли любой встроенный information_schema
таблица, которая выставит то, что функция делает между вводом и выводом?
Если вы можете каким-то образом выполнить запрос к своей базе данных и если у вас есть необходимые разрешения для чтения представлений системного каталога, то вы можете запустить этот запрос, чтобы получить имя, определение (код 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')
Если у вас есть соответствующие разрешения, вы можете просто написать сценарий для всех хранимых процедур и функций:
Щелкните правой кнопкой мыши свою базу данных в SSMS (SQL Server Management Studio), выберите «Задачи» - > Сгенерируйте сценарии, убедитесь, что ваша база данных выделена, и нажмите «Далее». Убедитесь, что выбраны параметры для сценария хранимых процедур и функций.
Вы можете установить SSMS (клиентские инструменты), не требуя лицензии SQL Server.
Другой способ - sp_helptext
, который покажет вам источник переданного SP или UDF;
sp_helptext fnBlaDeBla