sql >> Databasteknik >  >> RDS >> Sqlserver

Ta bort kolumner i MS SQL Server

Kommandot du letar efter är:

alter table tblName drop column columnName

där tblName är namnet på tabellen och columnName är namnet på kolumnen, men det finns några saker du kan behöva göra först.

  • Om det finns några främmande nyckelreferenser till kolumnen måste du bli av med dem först.
  • Om det finns ett index som använder den kolumnen, måste du antingen bli av med det eller justera det så att det inte används i den kolumnen.

Tänk på att det här kommandot inte nödvändigtvis är bra. Ett alternativ är att vänta på en stilleståndsperiod när du kan vara säker på att ingen kommer åt databasen, byt namn på den aktuella tabellen och använd sedan create table och insert into ... select from för att överföra de kolumner du inte vill ta bort.

En av de senare utgåvorna av Oracle har faktiskt en mjuk borttagning som bara kan markera en kolumn som oanvänd utan att ta bort den fysiskt. Det har samma effekt eftersom du inte längre kan referera till det och det finns ett kommando i stil med alter table ... drop unused columns som är tänkt att köras i tyst tid, vilket gör det hårda arbetet med att faktiskt ta bort det fysiskt.

Detta har fördelen av att kolumnerna "försvinner" omedelbart utan att dra ner databasprestanda under hektiska tider.



  1. Vad är DATALENGTH()-ekvivalenten i MySQL?

  2. MySQL-valbegäran parallellt (python)

  3. C# Enum använder värden i SQL Server-tabellen

  4. Sammanfoga två rader som har samma värde i två kolumner