Я проследил хранимую процедуру, как показано в SQL Server 2005 Profiler. Это не найдено, но работает. Зачем? - PullRequest
2 голосов
/ 17 сентября 2008

Это довольно странно.

У меня открыт профилировщик, и он, очевидно, показывает, что вызывается хранимая процедура. Я открываю базу данных и список SP, но SP не существует. Однако есть еще один SP, имя которого совпадает, за исключением того, что он имеет префикс 'x'

В целях безопасности SQL Server 2005 отображает имя SP на другое имя?

РЕДАКТИРОВАТЬ: Я обнаружил, что это синоним, что бы это ни было.

Ответы [ 5 ]

5 голосов
/ 17 сентября 2008

В общем, когда вы знаете, что объект существует, поскольку он был использован в запросе, и вы не можете найти его в дереве объектов в Management Studio, вы можете сделать это, чтобы найти его.

select *
from sys.objects
where name = 'THE_NAME_YOU_WANT'

Я только что проверил, и он работает с синонимами.

1 голос
/ 06 июля 2011

Хранимая процедура будет в базе данных, которую вы выбрали во время создания хранимой процедуры. Поэтому ищите внутри базы данных, из которой он извлекает данные, иначе она будет внутри основной базы данных. Если вы все еще не можете найти, то первое решение для чисел - лучшее. т.е.

select * from sys.objects where name = 'name of stored procedure'
1 голос
/ 17 сентября 2008

У вас может не быть разрешения на просмотр всех объектов в базе данных

1 голос
/ 17 сентября 2008

Добавление к предыдущим ответам также может относиться к «Системным хранимым процедурам», а если имя хранимой процедуры начинается с «sp_», оно также может находиться в базе данных master.

1 голос
/ 17 сентября 2008

Возможно глупые вопросы, но на всякий случай ... Вы обновили список SP? Вы проверили хранимую процедуру с таким именем под другим владельцем? Если вы создали хранимую процедуру, не указав владельца, она может оказаться в списке под вашим владением (или вообще не быть, если список фильтруется, например, только в «dbo»).

...