Вы создаете временную хранимую процедуру из-за префикса имени #
. Временные хранимые процедуры создаются в схеме tempdb dbo. Имя схемы, указанное в CREATE PROCEDURE
, игнорируется как в этом случае, так и при выполнении. Для остроумия:
USE YourDatabase;
GO
CREATE PROC SomeArbirarySchema.#example
AS SELECT 1;
GO
Процедура создается в схеме tempdb dbo
, как показано в запросе ниже.
SELECT OBJECT_SCHEMA_NAME(OBJECT_ID(N'tempdb.SomeArbirarySchema.#example'), DB_ID(N'tempdb'));
Этот процесс можно вызывать с любой из следующих конструкций:
EXECUTE #example;
EXECUTE SomeArbirarySchema.#example;
EXECUTE ThisCanBeAnyString.#example;
Собственно имя схемы объектов, на которые есть ссылки в теле proc.
Если вы намереваетесь создать временные процессы, которые ссылаются на объекты, отличающиеся только по имени схемы, вам нужно будет использовать разные временные имена процедур, а не использовать имя схемы в качестве пространства имен.