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

Откуда:
Сообщений: 9
Всем доброго дня!
Ситуация следующая: в MS SQL хочу удалить индекс, навешенный на поле таблицы. DROP INDEX не пойдет - имя индекса нужно вычислить на основании поля таблицы(оно генерится автоматически другой программой и для разных версий скрипта генерации может меняться), на которое он навешан. Есть подозрения, что в этом замешаны sysindexes, sysobjects и syscolums.
В инете накопал нечто следующего вида
select o.name, i.*
from sysobjects o, sysindexes i
where o.id = i.id and o.id = OBJECT_ID('Моя_Таблица')

получаю более или менее короткий список, в который попадают в т.ч. и индексы. Как уточнить условие так, чтобы попадал только нужный индекс?

Заранее спасибо :)
24 дек 09, 14:53    [8113646]     Ответить | Цитировать Сообщить модератору
 Re: Удаление индекса  [new]
Не важно
Guest
типа такого навскидку
select so.name, sc.name, si.id, si.name 
from sysindexes si 
join sysobjects so on si.id=so.id and so.xtype='u' and so.name='Service_Process'
join syscolumns sc on sc.id=so.id
24 дек 09, 15:04    [8113734]     Ответить | Цитировать Сообщить модератору
 Re: Удаление индекса  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Добавьте еще sysindexkeys и syscolums, структура которых описана в BOL.
24 дек 09, 15:04    [8113736]     Ответить | Цитировать Сообщить модератору
 Re: Удаление индекса  [new]
Local Hoster
Member

Откуда: default city
Сообщений: 90
Igram,
SELECT DISTINCT
	i.name as [index_name]
FROM
	sysobjects as t
	left outer join syscolumns as c on c.id = t.id
	left outer join sysindexkeys as k on k.id = t.id and k.colid = c.colid
	left outer join sysindexes as i on i.indid = k.indid
WHERE
	i.name is not null
	AND t.name = @table_name
	AND c.name = @column_name
24 дек 09, 15:29    [8114007]     Ответить | Цитировать Сообщить модератору
 Удаление индекса  [new]
Igram
Member

Откуда:
Сообщений: 9
Ага. Спасибо всем большое за помощь. проблема решилась :)
24 дек 09, 16:20    [8114465]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить