У меня есть база данных SQL Server 2008 R2 с хранимой процедурой, которая может существовать или не существовать.Сохраненная процедура не существует и не существует
Если я запустил sp_help spThing
, он возвращает строку, как если бы она существовала (имя: spThing, владелец: dbo, тип: хранимая процедура).
Если я пытаюсь создать новую хранимую процедуру с тем же именем, я получаю сообщение об ошибке «В базе данных уже есть объект с именем« spThing ».
НО
Если я бегу SELECT OBJECT_ID('dbo.spThing')
, она возвращает NULL.
Если я запустил EXEC spThing
, он говорит: «Не удалось найти хранимую процедуру« spThing ».
Если я запустил DROP spThing
, в нем говорится: «Невозможно отказаться от процедуры« spThing », потому что она не существует или у вас нет разрешения».
Если я запустил SELECT * FROM sys.objects WHERE name = 'spThing'
, у меня нет строки.
Если я запустил SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME = 'spThing'
, у меня нет строки.
Все они были запущены из того же соединения, что и административный пользователь.
Существует ли хранимая процедура?
Edit:
Сам SP тривиальный выбор, вдоль линий:
CREATE PROCEDURE spThing
@Param int
AS
BEGIN
SELECT strThing
FROM tblThing
WHERE lngParam = @Param;
END
Просьба указать 'DDL' вашего sp. – Devart
Это просто тривиальный запрос, добавленный к вопросу. – Paul
Очень странно, если объект существует 'OBJECT_ID ('. ')' всегда не является нулевым.Проверьте имя схемы по умолчанию. –
Devart