Dodaj kolumnę do SQL Server

101

Muszę dodać kolumnę do mojej SQL Servertabeli. Czy można to zrobić bez utraty danych, które już mam?

Antarr Byrd
źródło

Odpowiedzi:

158

Oczywiście! Po prostu użyj ALTER TABLE...składni.

Przykład

ALTER TABLE YourTable
  ADD Foo INT NULL /*Adds a new int column existing rows will be 
                     given a NULL value for the new column*/

Lub

ALTER TABLE YourTable
  ADD Bar INT NOT NULL DEFAULT(0) /*Adds a new int column existing rows will
                                    be given the value zero*/

W SQL Server 2008 pierwsza zmiana dotyczy tylko metadanych. Drugi zaktualizuje wszystkie wiersze.

W SQL Server 2012+ Enterprise Edition druga to tylko zmiana metadanych .

Martin Smith
źródło
17

Użyj tego zapytania:

ALTER TABLE tablename ADD columname DATATYPE(size);

A oto przykład:

ALTER TABLE Customer ADD LastName VARCHAR(50);
bhavesh N.
źródło
1
Jeśli kod pocztowy, próbki XML lub danych, należy zaznaczyć te linie w edytorze tekstowym i kliknij na przycisk „Kod próbki” ( { }) na pasku narzędzi edytora, aby ładnie format i składnia go podświetlić!
marc_s,
3

Dodanie kolumny za pomocą SSMS lub ALTER TABLE .. ADDnie spowoduje usunięcia żadnych istniejących danych.

Alex K.
źródło
2

Dodaj nową kolumnę do tabeli

ALTER TABLE [table]
ADD Column1 Datatype

Na przykład

ALTER TABLE [test]
ADD ID Int

Jeśli użytkownik chce, aby był automatycznie zwiększany, to

ALTER TABLE [test]
ADD ID Int IDENTITY(1,1) NOT NULL
Chirag Thakar
źródło
-1

Dodaj nową kolumnę do tabeli z wartością domyślną.

ALTER TABLE NAME_OF_TABLE
ADD COLUMN_NAME datatype
DEFAULT DEFAULT_VALUE
Rakesh Singh Balhara
źródło
Twoja odpowiedź byłaby o wiele lepsza, gdybyś dodał krótkie wyjaśnienie, co się tutaj dzieje.
Bonifacio 2