Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / проверка существования таблицы / 7 сообщений из 7, страница 1 из 1
25.11.2009, 11:07
    #36330238
228293
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования таблицы
ASE 11
требуется проверить существование временной таблицы и если существует то удалить ее

нашел такое решение, но не знаю где хранится имя временной таблицы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
if exists(
   select * from sys.systable
   where table_name='#tyyr'
) then
    drop table #tyyr


select  *
into #tyyr

from   
       tbl_name

похожий вопрос возникал уже тут , но там просто не рекомендуют использовать временные таблицы
...
Рейтинг: 0 / 0
25.11.2009, 13:32
    #36330766
Sergey Orlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования таблицы
А может проще использовать локальную временную таблицу, она ведь будет существовать только когда вы ее обьявите и только в существующей сессии, для жругих сессий она не видна...
local temporary table exists only for the duration of a connection
...
Рейтинг: 0 / 0
25.11.2009, 14:44
    #36330975
228293
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования таблицы
наверное я неправлиьно организовал
но там в одной сессии этот же запрос может быть сделан повторно
то есть скажем сделали выборку, потом решили сделать выборку за другой день

делать реконнект между выборками тоже не вариант
...
Рейтинг: 0 / 0
25.11.2009, 15:54
    #36331252
Sergey Orlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования таблицы
Ну так сделай перед выходом из процедуры
begin
declare local table temp
select * into temp from tbl_name
select * from temp
drop table temp
end

В доках все есть...
...
Рейтинг: 0 / 0
25.11.2009, 15:57
    #36331263
Sergey Orlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования таблицы
228293наверное я неправлиьно организовал
но там в одной сессии этот же запрос может быть сделан повторно
то есть скажем сделали выборку, потом решили сделать выборку за другой день

делать реконнект между выборками тоже не вариант
А что в процедуре не указать день в качестве входящего параметра... И нафиг тогда временная таблица...
...
Рейтинг: 0 / 0
25.11.2009, 17:37
    #36331701
SQLMantis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования таблицы
228293,
Код: plaintext
1.
2.
IF OBJECT_ID('#tyyr') IS NOT NULL
   DROP #tyyr
...
Рейтинг: 0 / 0
25.11.2009, 23:38
    #36332314
228293
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования таблицы
SQLMantis228293,
Код: plaintext
1.
2.
IF OBJECT_ID('#tyyr') IS NOT NULL
   DROP #tyyr
любопытно но отдельно приведнный код работает
и удаляет временную таблицу, тока там drop table нужно
а вот вместе выдает ошибку
errorCannot create temporary table '#tyyr'.
Prefix name '#tyyr' is already in use by another temporary table '#tyyr'.

Код: plaintext
1.
2.
3.
4.
5.
6.
IF OBJECT_ID('#tyyr') IS NOT NULL
   DROP table #tyyr

select  *
into #tyyr
from  
      tbl_name
проверил правда этот запрос в ASE-15
завтра в нужной версии попробую
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / проверка существования таблицы / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]