Как узнать, существует ли индекс для #table в Sysbase?

Я работаю в Sybase 15 SQL, в хранимых процедурах. Я хочу определить индексы во временной таблице #. Обычные методы работают с постоянной таблицей, но не работают с временной:

--look for an index on a temporary table

create table #T1( duff int)

create index idx99 on #T1(duff)

select * from sysindexes where name = 'idx99' --returns null rows !

--Look for an index on a permanent table

create table T1( duff int)

create index idx99 on T1(duff)

select * from sysindexes where name = 'idx99' --returns a row. OK for perm table.

Любые идеи?

Боб


person user3041581    schedule 17.01.2014    source источник
comment
Я думаю, что здесь это может хорошо подойти: база данных" title="как я могу найти список индексов sybase для данной базы данных"> stackoverflow.com/questions/1468183/   -  person LWNirvana    schedule 17.01.2014
comment
@LWNirvana уже близко. Основное отличие состоит в том, что временные таблицы хранят свою информацию во временной базе данных.   -  person Michael Gardner    schedule 17.01.2014
comment
@user3041581 user3041581 Привет, я заметил, что ты еще не принял мой ответ и просто хотел уточнить.   -  person Michael Gardner    schedule 31.01.2014


Ответы (1)


Для #tables запрос на поиск индексов такой же, как и для обычной таблицы, но его необходимо выполнить для tempdb (или временной базы данных для вашего сеанса, если она не по умолчанию).

SELECT o.name, i.name
FROM tempdb..sysobjects o, tempdb..sysindexes i
WHERE o.id = i.id
AND o.name like "#T1%"
AND i.name like "idx99"
person Michael Gardner    schedule 17.01.2014
comment
Спасибо, это работает, если я исправлю ошибку в SQL: четвертая строка должна быть AND o.name как #T1% - person user3041581; 20.01.2014