Я пытаюсь перечислить все хранимые процедуры из всех баз данных на моем сервере, и я не могу надежно отфильтровать системные объекты.Я использовал:
SELECT *
FROM sysobjects
WHERE id > 100
, который, кажется, прекрасно работает во всех базах данных, кроме MSDB, который полон тонны хранимых проков с нормально выглядящими идентификаторами, но это системные хранимые проки.Насколько я могу судить, я не могу отфильтровать системные хранимые процессы, используя любое из значений в таблице sysobjects - кто-нибудь еще знает о значении, которое можно использовать для фильтрации?
Они 'все они помечены как type = "P", что означает, что это хранимый процесс, но, похоже, нет флага, который бы указывал, является ли он системным или пользовательским.Я могу использовать представление и фильтр sys.objects для «IsMsShipped = 0», но мне бы хотелось что-то, что также работает в SQL 2000, поэтому я бы предпочел использовать более старые представления (например, sysobjects), если это возможно.