Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 какой инструкцией проще всего кластерный индекс сделать некластерным?  [new]
кластерный индекс
Guest
какой инструкцией проще всего кластерный индекс сделать некластерным?
через ALTER INDEX все никак не получается.
6 июл 11, 11:11    [10930410]     Ответить | Цитировать Сообщить модератору
 Re: какой инструкцией проще всего кластерный индекс сделать некластерным?  [new]
Andrey Sribnyak
Member

Откуда: Киев
Сообщений: 600
кластерный индекс,

Ну наверное это таки две операции...
1- Удаление кластерного индекса
2. Создание индекса обычного
if OBJECT_ID ('tempdb..#t') is not null
	drop table #t
go	
create table #t (id int)
go
create CLUSTERED  index CX_TEST 
	ON #t(id)
go


insert into #t values (1),(2),(3),(4),(12),(22),(1222)
go

drop index CX_TEST on #t
go

create NONCLUSTERED  index IX_TEST 
	ON #t(id)
go
6 июл 11, 11:19    [10930491]     Ответить | Цитировать Сообщить модератору
 Re: какой инструкцией проще всего кластерный индекс сделать некластерным?  [new]
Glory
Member

Откуда:
Сообщений: 104751
BOL - ALTER INDEX

ALTER INDEX cannot be used to repartition an index or move it to a different filegroup. This statement cannot be used to modify the index definition, such as adding or deleting columns or changing the column order. Use CREATE INDEX with the DROP_EXISTING clause to perform these operations.
6 июл 11, 11:19    [10930501]     Ответить | Цитировать Сообщить модератору
 Re: какой инструкцией проще всего кластерный индекс сделать некластерным?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Даже с drop_existing не переделывает:

Msg 1925, Level 16, State 2, Line 8
Cannot convert a clustered index to a nonclustered index by using the DROP_EXISTING option. To change the index type from clustered to nonclustered, delete the clustered index, and then create a nonclustered index by using two separate statements.

Так что только сначала удалять.
6 июл 11, 11:31    [10930633]     Ответить | Цитировать Сообщить модератору
 Re: какой инструкцией проще всего кластерный индекс сделать некластерным?  [new]
кластерный индекс
Guest
Всем спасибо!

Тут еще такая штука, что кластерный индекс задан на primary key.

И выходит ошибка:
An explicit DROP INDEX is not allowed on index 'dbo.Tbl.PK_Tbl'. It is being used for PRIMARY KEY constraint enforcement.
6 июл 11, 11:43    [10930746]     Ответить | Цитировать Сообщить модератору
 Re: какой инструкцией проще всего кластерный индекс сделать некластерным?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
кластерный индекс
Всем спасибо!

Тут еще такая штука, что кластерный индекс задан на primary key.

И выходит ошибка:
An explicit DROP INDEX is not allowed on index 'dbo.Tbl.PK_Tbl'. It is being used for PRIMARY KEY constraint enforcement.
Ну, придется констрейнт сначала убирать. Возможно, не один.
6 июл 11, 11:43    [10930754]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить