Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: user3041581Ответов: 1

Я работаю в 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.

Любые идеи?

Боб

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

sqlindexingsybase

Ответы

Ответ 1 · рейтинг 5 · Michael Gardner

Для #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"

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы