Jak mogę zmodyfikować typ w tabeli z indeksem? Próbowałem zrobić kolumnę alter na pustej tabeli, aby zmodyfikować typ od daty do varchar (15) i dostałem błędy mówiące, że ma zależności od kolumny (która okazała się być indeksami).
Byłem w stanie łatwo obejść ten problem lokalnie, klikając prawym przyciskiem myszy indeks i wykonując skrypt na liście rozwijanej, ale muszę to rozpowszechnić na innych serwerach, na których nie będę mieć dostępu do nazwy indeksu.
Czy istnieje sposób, aby utworzyć skrypt, który usunie dowolny indeks, pozwól mi zmienić ten typ danych w kolumnie, a następnie odczytać indeks? Dzięki!
źródło
Aby zmienić dowolną kolumnę, najpierw musisz usunąć indeks lub inne ograniczenia zawierające tę kolumnę, a następnie ponownie utworzyć indeks / ograniczenie. Ale to zadanie musi wykonać DBA, ponieważ każde upuszczenie indeksu lub ograniczenie wpłynie z jednej strony na dane, o które pyta się - podczas gdy indeks jest upuszczany, a z drugiej strony nakłada blokadę na całą tabelę na czas ponownego indeksowania Utworzony. Musisz upewnić się, że użytkownicy będą świadomi tej małej lub dużej (w zależności od wielkości stołu) konserwacji. Powodzenia!
Jednak tworzenia indeksu można dokonać za pomocą opcji Online, która jest mniej blokująca.
źródło
Jeśli upuścisz indeks jako pierwszy, nie będziesz w stanie odczytać go ponownie, chyba że indeks zostanie ponownie utworzony. Co możesz zrobić, aby wyłączyć wymuszanie ograniczenia.
Po uruchomieniu tego skryptu ograniczenie nie zostanie wymuszone, a dane można wprowadzać bez obawy o sprawdzenie ograniczeń. Możesz ponownie zmienić tabelę, aby ponownie włączyć ograniczenia.
Wszelkie wcześniejsze naruszenia nie zostaną sprawdzone ani poprawione, ale wszelkie wpisy po wymuszeniu ograniczenia zostaną sprawdzone.
źródło
W odpowiedzi Niko występują 2 błędy (brak 2 warunków object_id). I nie trzeba
group by
:źródło