Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Временная таблица созданная в хранимой процедуре не видна в клиентском приложении.  [new]
a139
Member

Откуда:
Сообщений: 70
Т.е. если я пишу:
1) в приложении
AdodbConnection.Execute "EXEC MyProc"
, где MyProc - хранимая процедура, создающая временную таблицу #MyTable.

а затем напишу:
2)
AdodbConnection.Execute "SELECT 1 FROM #MyTable"
, то приложение вылетает с ошибкой "Недопустимое имя объекта "#MyTable"."

Если же я напишу
1) в приложении:
AdodbConnection.Execute "SELECT 0 F INTO #MyTable WHERE 1 = 0

и затем:
2)
AdodbConnection.Execute "SELECT 1 FROM #MyTable"

то все работает без ошибок.
7 июн 13, 16:19    [14407344]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица созданная в хранимой процедуре не видна в клиентском приложении.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Если бы вы прочитали про область видимости временных таблиц, то узнали бы, что это документированное и ожидаемое поведение.
7 июн 13, 16:22    [14407368]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица созданная в хранимой процедуре не видна в клиентском приложении.  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
при выходе из процедуры таблица ваша автоматически уничтожается
7 июн 13, 16:23    [14407375]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица созданная в хранимой процедуре не видна в клиентском приложении.  [new]
a139
Member

Откуда:
Сообщений: 70
А я то думал, что таблица удалится, когда закончится соединение\процесс ее породивший..
7 июн 13, 16:26    [14407398]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица созданная в хранимой процедуре не видна в клиентском приложении.  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
a139
А я то думал, что таблица удалится, когда закончится соединение\процесс ее породивший..

а зачем придумывать/додумывать? все же описано в хелпе!
7 июн 13, 16:27    [14407402]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица созданная в хранимой процедуре не видна в клиентском приложении.  [new]
Glory
Member

Откуда:
Сообщений: 104751
a139
А я то думал, что таблица удалится, когда закончится соединение\процесс ее породивший..

И в этом случае тоже
7 июн 13, 16:27    [14407403]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица созданная в хранимой процедуре не видна в клиентском приложении.  [new]
a139
Member

Откуда:
Сообщений: 70
Всем спасибо.
7 июн 13, 16:27    [14407404]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица созданная в хранимой процедуре не видна в клиентском приложении.  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Knyazev Alexey
a139
А я то думал, что таблица удалится, когда закончится соединение\процесс ее породивший..

а зачем придумывать/додумывать? все же описано в хелпе!


http://msdn.microsoft.com/ru-ru/library/ms174979.aspx

Временные таблицы автоматически удаляются при выходе за пределы области определения, если не удалять их явно с помощью инструкции DROP TABLE.

•Локальная временная таблица, созданная хранимой процедурой, удаляется автоматически при завершении хранимой процедуры.
К этой таблице могут обращаться любые вложенные хранимые процедуры, выполняемые хранимой процедурой, создавшей таблицу.
Процесс, вызвавший хранимую процедуру, создавшую таблицу, к этой таблице обращаться не может.

•Все прочие локальные временные таблицы удаляются автоматически в конце текущего сеанса.
7 июн 13, 16:31    [14407435]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить