Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Usuwanie kolumn w MS SQL Server

Polecenie, którego szukasz to:

alter table tblName drop column columnName

gdzie tblName to nazwa tabeli i columnName to nazwa kolumny, ale jest kilka rzeczy, które musisz najpierw zrobić.

  • Jeśli są jakieś odniesienia do klucza obcego do kolumny, musisz się ich najpierw pozbyć.
  • Jeśli istnieje indeks korzystający z tej kolumny, musisz albo się go pozbyć, albo dostosować, aby nie używał tej kolumny.

Pamiętaj, że wykonanie tego polecenia niekoniecznie musi być dobre. Jedną z opcji jest poczekanie na okres przestoju, kiedy możesz mieć pewność, że nikt nie będzie miał dostępu do bazy danych, zmień nazwę bieżącej tabeli, a następnie użyj create table i insert into ... select from aby przenieść kolumny, których nie chcesz usunąć.

Jedno z późniejszych wydań Oracle faktycznie ma miękkie usuwanie, które może po prostu oznaczać kolumnę jako nieużywaną bez fizycznego jej usuwania. Ma to ten sam efekt, ponieważ nie można już się do niego odwoływać i jest polecenie wzdłuż linii alter table ... drop unused columns który ma być uruchamiany w cichym czasie, który wykonuje ciężką pracę polegającą na fizycznym usunięciu go.

Ma to tę zaletę, że „znikają” kolumny natychmiast bez zmniejszania wydajności bazy danych w czasie wzmożonego ruchu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Prosty sposób na transponowanie kolumn i wierszy w SQL?

  2. Zrozumienie QUOTED_IDENTIFIER

  3. SQL — jak generować wiersze dla każdego miesiąca na podstawie zakresów dat w istniejącym zestawie danych?

  4. Sql Server 2008 MERGE - najlepszy sposób na liczenie

  5. Dlaczego [data] + ([godzina]-[przesunięcie]) nie jest deterministyczny w programie SQL Server 2008?