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

Откуда:
Сообщений: 231
Люди подскажите плиз, имеется ли возможность отследить наличие объекта "таблица" если она временная, т.е. #Table и я провожу пошаговую отладку. Как мне узнать в какой момент исчезает эта таблица. там в Watches или Locals что нужно набрать?
5 авг 11, 09:49    [11074436]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать существует ли временная таблица в режиме Debug  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
В какой момент "исчезает" временная таблица описано в BOL в статье CREATE TABLE в подразделе Temporary Tables.
5 авг 11, 10:13    [11074546]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать существует ли временная таблица в режиме Debug  [new]
BurcevD
Member

Откуда:
Сообщений: 231
pkarklin,

Я читал это и знаю как это все происходит, просто ситуация такая, что тут процедура работает со временной таблицей, в этой процедуре имеется запуск других процедур, а там еще фиг знает сколько запусков, и периодически они все работают с этой временной таблицей, но видно кто то или удаляет ее или еще что, короче нужно узнать в какой момент она удаляется. Сразу скажу что переделывать другие процедуры нет возможности - это "наследие" от других программистов, поэтому как говорится, работает - не трогай.
5 авг 11, 10:21    [11074593]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать существует ли временная таблица в режиме Debug  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
автор
кто то или удаляет ее или еще что


В чем это выражается? Что показывает трассировка вызова с включенным событием SP: StmtCompleted?
5 авг 11, 10:28    [11074648]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать существует ли временная таблица в режиме Debug  [new]
BurcevD
Member

Откуда:
Сообщений: 231
pkarklin,

Выражается это в том, что в середине выполнения процедуры (после выполнения других процедур) пытаюсь выбрать значения из этой таблицы, а СКЛ матерится, что такого объекта не существует, хотя создавалась таблица в начале этой же процедуры.
5 авг 11, 10:35    [11074698]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать существует ли временная таблица в режиме Debug  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Поиск объекта, в тексе которого есть упоминание имени временной таблицы по syscoomets не составляет труда.
5 авг 11, 10:37    [11074713]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать существует ли временная таблица в режиме Debug  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
pkarklin
Поиск объекта, в тексе которого есть упоминание имени временной таблицы по syscoomets не составляет труда.
Да просто понаставить SELECT OBJECT_ID(N'tempdb..#Table','U')после каждого вызова процедуры
и смотреть: NULL - NOT NULL?
5 авг 11, 10:46    [11074771]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать существует ли временная таблица в режиме Debug  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
pkarklin
по syscoomets.


syscomments, конечно.
5 авг 11, 10:48    [11074786]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать существует ли временная таблица в режиме Debug  [new]
Raoul
Member

Откуда:
Сообщений: 177
BurcevD
Люди подскажите плиз, имеется ли возможность отследить наличие объекта "таблица" если она временная, т.е. #Table?


В T-SQL можно так:
if OBJECT_ID(N'[tempdb]..[#Table]') is not null begin
    -- таблица есть
end else begin
    -- таблицы нет
end;
5 авг 11, 10:58    [11074873]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить