Ваш пользователь настроен с dbo
, поскольку это схема по умолчанию. Это довольно нормально
при запуске
exec testSP
это с помощью схемы по умолчанию, которая dbo
, поэтому он работает так:
exec [dbo].[testSP]
, который не существует.
При запуске
exec [db_owner].[testSP]
это найти и работает, что хранимая процедура
Я не знаю, фон, но я предполагаю, что кто-то неправильно/случайно создал и использовал схему под названием db_owner
Во всех работах db, я думаю, объекты находятся в схеме dbo, или ваш пользователь настроен на использование правильной схемы. Поищите в браузере объектов и сравнить
Если вы хотите переместить хранимую процедуру в dbo
схемы запуска это:
ALTER SCHEMA dbo TRANSFER [db_owner].[testSP];
Если вы хотите изменить схему пользователей по умолчанию для данных db_owner запустить это:
ALTER USER [youruser] WITH DEFAULT_SCHEMA = db_owner;
Я считаю, что схема db_owner является случайностью.
Возможно, у вашего пользователя есть другая схема по умолчанию. Что вы получите, если вы запустите 'SELECT SCHEMA_NAME()'? PS. Это действительно помогает, если вы публикуете фактическую ошибку. Остановит нас догадки. –
для этой команды он возвращает dbo – Zee
Да. 'db_owner' отличается от' dbo'. Каково фактическое сообщение об ошибке? В основном ваш пользователь настроен на использование dbo по умолчанию, поэтому для запуска чего-либо в схеме db_owner вам нужно префикс –