Piszę to kontynuacją Changing data type of column in SQL Serverspada/wyłączanie wskaźnik jest lepszy serwer sql
wcześniej było moje pytanie, czy muszę usunąć wszystkie indeksy i ograniczeń, a to odpowiedział mi trzeba je usunąć.
Tak jak surfowałem po Internecie na ten temat natknąłem się na kilka postów mówiących, że lepiej jest wyłączyć i włączyć indeks, zamiast je usuwać i ponownie tworzyć.
Co jest lepszym sposobem na zrobienie tego? Czy wyłączenie indeksu pozwala również zmienić typ danych kolumny? Jaka jest różnica między oboma?
komunikat z usuwania i tworzenia indeksu
DROP INDEX UX_1_COMPUTATION ON dbo.Computation
ALTER TABLE dbo.Computation
ALTER COLUMN ComputationID NVARCHAR(25) not null
CREATE UNIQUE INDEX UX_1_COMPUTATION ON dbo.Computation (ComputationID);
komunikat z wyłączanie i włączanie Indeks
ALTER INDEX [UX_1_COMPUTATION ] ON dbo.Computation DISABLE
ALTER TABLE dbo.Computation
ALTER COLUMN ComputationID NVARCHAR(25) not null
ALTER INDEX [UX_1_COMPUTATION ] ON dbo.Computation REBUILD;
Czy uruchomiłeś skrypt testowy? Możesz również rzucić okiem na dokumentację, która mówi ci o [ograniczeniach dotyczących zmiany kolumny] (http://msdn.microsoft.com/en-us/library/ms190273.aspx) używanych w indeksie oraz o tym, co [ wyłączanie indeksów] (http://msdn.microsoft.com/en-us/library/ms177406 (v = sql.100) .aspx) robi. Mam nadzieję, że jest oczywiste, że istnieje różnica między wyłączeniem czegoś a upuszczeniem (usunięciem). – Pondlife
@Pondlife Dzięki za informacje – Sam