default schema (2005)

p00h
Дата: 09.09.2006 20:41:23
Помогите решить проблему.

Есть схема MySchema, есть пользователь MyUser, для которого MySchema - схема по умолчанию, и есть таблица dbo.MyTable.
Еще есть такая процедура, которая запускается под пользователем dbo:
CREATE PROCEDURE dbo.MyProcedure
AS
BEGIN
	EXECUTE AS USER = 'MyUser'
	CREATE TABLE MyTable (MyField int)
	SELECT * FROM MyTable
	REVERT
END
GO

Когда выполняется эта процедура, в схеме MySchema создается таблица MySchema.MyTable (как и должно быть), но SELECT делается из таблицы dbo.MyTable. Что сделать, чтобы SELECT выполнялся из таблицы MySchema.MyTable?. И как это ни странно, но если скрипт из процедуры выполнять не в процедуре, а отдельно, то все работает как надо - создается таблица и из нее же делается SELECT.
Ниче не понимаю???

Вот весь скрипт для проверки:
-- setup
--
CREATE SCHEMA MySchema
GO
CREATE USER MyUser 
WITHOUT LOGIN 
WITH DEFAULT_SCHEMA = MySchema
GO
CREATE TABLE dbo.MyTable (DboField int)
GO
GRANT CONTROL TO MyUser
go
CREATE PROCEDURE dbo.MyProcedure
AS
BEGIN
	EXECUTE AS USER = 'MyUser'
	CREATE TABLE MyTable (MyField int)
	SELECT * FROM MyTable
	REVERT
END
GO
--

-- test
--
-- работает правильно 
EXECUTE AS USER = 'MyUser'
CREATE TABLE MyTable (MyField int)
SELECT * FROM MyTable
REVERT
DROP TABLE MySchema.MyTable
GO

-- работает неправильно
EXEC MyProcedure
DROP TABLE MySchema.MyTable
GO
--

-- clean
DROP PROCEDURE MyProcedure
DROP TABLE MyTable
DROP USER MyUser
DROP SCHEMA MySchema