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

Откуда: Томск.
Сообщений: 282
Здравствуйте, подскажите, как проверить существует или нет временная таблица?
1 авг 03, 07:15    [284394]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить существует или нет временная таблица?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
if object_id('tempdb..#t') is null
1 авг 03, 07:20    [284395]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить существует или нет временная таблица?  [new]
sergey_rft
Member

Откуда: Томск.
Сообщений: 282
Еще один вопрос. В документации сказано, что временная таблица живет в течении сессии. Значит ли это что, я могу вызвать хранимую процедуру из клиента, она проверит есть временная таблица или нет, если нет, то создаст ее, а если есть запишет вставит в нее запись. При последующем вызове из клиента хранимой процедуры, таблица уже будет и так до тех пор пока я в клеенте не выполниться m_session.close(); ?
1 авг 03, 07:26    [284396]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить существует или нет временная таблица?  [new]
sergey_rft
Member

Откуда: Томск.
Сообщений: 282
Пардон, таблица разрушается после завершения сеанса, а когда происходит завршение сеанса?
1 авг 03, 07:29    [284397]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить существует или нет временная таблица?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Ну, вот, к примеру. Есть две процедуры. Первая создает временную таблицу и вызывает вторую. Вторая проверяет, если нет временной таблицы, то создает её, пишет в неё и возвращает набор строк из неё. Первая в свою очередь после выполнения второй тоже проводит какую то обработку во временной таблице и тоже возвращает записи из неё. Так вот вызов первой процедуры и будет сессия в которой живет временная таблица. Т.е. здесь временную таблицу будут видеть все вложенные процедуры. После завершения первой процедуры временная таблица, т.к. она была создана ей и никто её явно не убил, умрет.
1 авг 03, 07:51    [284405]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить существует или нет временная таблица?  [new]
sergey_rft
Member

Откуда: Томск.
Сообщений: 282
Понятно, tpg, а что ты можешь посоветовать? У меня приложение в которое будет несколько раз, причем не известное количество раз вызывать хранимую процедуру, т-е циклически при обработке события. Хранимая процедура должна определить если в данной циклической обработке она запускается впервые, то она добавляет запись в таблицу Pat, в которой есть поле ID, потом то, что добавляется в это поле, при последующих вызовах процедуры должно заноситься в таблицу Atrib, на ряду с передоваемыми значениями. Как это можно сделать?
1 авг 03, 08:00    [284412]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить существует или нет временная таблица?  [new]
Белов Владимир
Member

Откуда: Москва
Сообщений: 1716
Проверять, если записи в таблице Pat с указанным значение для поля ID


if exists(select * from Pat where ID = ...)

1 авг 03, 10:05    [284571]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить