Ten artykuł wyjaśnia operację SQL add column do istniejącej tabeli SQL. Zbadamy również różne przykłady operacji dodawania kolumn SQL.
czasami chcemy dodać kolumny do istniejącej tabeli. W istniejących tabelach możemy mieć w niej rekordy. Nie chcemy również tracić istniejących danych. W wielu okolicznościach możemy upuścić tabele i odtworzyć je, ale nie jest to ogólnie zalecane, szczególnie w środowisku produkcyjnym, ponieważ może to być destrukcyjne, ponieważ dotyczy danych., Nadal możemy wykonać operację SQL Dodaj kolumnę za pomocą polecenia Alter Table, co pozwala uniknąć konieczności opuszczania tabel, usuwania danych, nawet jeśli tylko tymczasowo.
składnia
możemy wykonać operację SQL add column na tabeli za pomocą następującego polecenia transact SQL.,
1
2
|
ALTER TABLE table_name
add column_name column_definition;
|
przygotowanie środowiska
musimy wybrać tabelę bazy danych i wstawić do niej dane.
wykonaj następujące zapytanie, aby utworzyć tabelę pracowników w bazie danych sqlshackdemo.
wykonaj następujące zapytanie, aby wstawić do niego przykładowe dane.,
na poniższym zrzucie ekranu możemy zobaczyć istniejące dane w tabeli pracowników.
SQL dodaj operację kolumny na istniejącej tabeli SQL
chcemy dodać dział kolumny w tabeli pracowników. Załóżmy, że mamy wiele kolumn w tabeli; musimy sprawdzić, czy dana kolumna istnieje w tabeli SQL, czy nie. Jeżeli określona kolumna nie istnieje, chcemy ją wytworzyć z odpowiednim typem danych.
możemy użyć widoku INFORMATION_SCHEMA do sprawdzania tabel i ich kolumn w bazie danych., Wykonaj poniższy kod, aby uzyskać listę kolumn, ich typ danych w tabeli pracownika.
w tym wyjściu możemy zobaczyć tabelę pracowników zawierającą 4 kolumny.
dodajmy nowy dział kolumn z następującym poleceniem Alter Table.,
1
2
|
Zmień pracownika tabeli
dodaj VARCHAR działu(50)
|
wykonaj to zapytanie i wybierz rekordy z tabeli pracowników. Na poniższym zrzucie ekranu możemy spojrzeć na nowy dział kolumn. Wszystkie istniejące rekordy zawierają wartość NULL w tej kolumnie.,
poprzednio sprawdzaliśmy wszystkie kolumny w tabeli pracowników za pomocą widoku INFORMATION_SCHEMA. W poniższym zapytaniu chcemy utworzyć tabelę działu tylko wtedy, gdy nie istnieje ona w tabeli pracowników.,
1
2
3
4
5
6
7
8
9
10
11
|
jeśli nie istnieje
div> (
Select *
from information_schema.,Kolumny
gdzie TABLE_NAME = 'pracownik'
I COLUMN_NAME = 'Dział'
)
BEGIN
ALTER TABLE Employee
ADD Department VARCHAR(50);
END;
|
możemy dodać kolumnę do istniejącej tabeli, jeśli pozwala na wartości NULL lub ma zdefiniowaną wartość domyślną., We can try to add Not NULL column in the existing SQL table, but it gives the following error message,
1
2
3
4
5
6
7
8
9
10
11
|
IF NOT EXISTS
(
SELECT *
FROM INFORMATION_SCHEMA.,Kolumny
gdzie TABLE_NAME = 'pracownik'
I COLUMN_NAME = 'telefon'
)
BEGIN
ALTER TABLE Employee
ADD Phone VARCHAR(15) Not null;
END;
|
SQL dodaj operację dodawania kolumn do istniejącej tabeli SQL z wartością domyślną
Załóżmy, że chcemy dodać kolumnę ISACTIVE column do tabeli employee., Możemy mieć następujące wartości w tej kolumnie
- wartość 1: pracownik jest aktywny
- wartość 0: pracownik nie jest aktywny
domyślnie wszyscy istniejący i nowi pracownicy powinni mieć wartość 1 w kolumnie IsActive. Możemy określić wartość używając domyślnego ograniczenia.,
If we try to add a column with a Not NULL value in the existing SQL table, we get following error message,
1
2
3
4
5
6
7
8
9
10
11
|
IF NOT EXISTS
(
SELECT *
FROM INFORMATION_SCHEMA.,Kolumny
gdzie TABLE_NAME = 'pracownik'
I COLUMN_NAME = 'telefon'
)
BEGIN
ALTER TABLE Employee
ADD ISACTIVE bit DEFAULT(1);
END;
|
wykonaj to zapytanie i wybierz rekordy z tabeli. Dla istniejących rekordów nie aktualizuje wartości domyślnych.
jeśli wstawimy nowy rekord w tej tabeli, otrzyma on wartość domyślną zgodnie z poniższym zrzutem ekranu.,
SQL dodaj operację kolumny do istniejącej tabeli SQL z kolumną identity
w SQL Server używamy funkcji Identity, aby zdefiniować domyślną i automatyczną wartość przyrostu dla każdego nowego wiersza. Możemy również dodać kolumnę identity do istniejącej tabeli SQL. Stwórzmy nową tabelę Employee_new bez kolumny identity.
Gdy pojawi się tabela, możemy dodać kolumnę tożsamości z następującym zapytaniem.,
1
2
3
4
5
6
7
8
9
10
11
|
jeśli nie istnieje
div> (
Select *
from information_schema.,Kolumny
gdzie TABLE_NAME = 'Employee_new'
I COLUMN_NAME = 'ID'
)
BEGIN
ALTER TABLE Employee_new
ADD ID INT IDENTITY(1,1) NOT null
END;
|
stworzyliśmy kolumnę tożsamości w tabeli bez żadnego rekordu w niej. Rzućmy stół i odtworzmy go. Wstaw kilka rekordów z następującym zapytaniem.
mamy dane w tabeli Employee_new. Dodajmy kolumnę tożsamości za pomocą polecenia Alter table.,
1
2
3
4
5
6
7
8
9
10
11
|
jeśli nie istnieje
div> (
Select *
from information_schema.,Kolumny
gdzie TABLE_NAME = 'Employee_new'
I COLUMN_NAME = 'ID'
)
BEGIN
ALTER TABLE Employee_new
ADD ID INT IDENTITY(1,1) NOT null
END;
|
na poniższym zrzucie ekranu możemy zobaczyć, jak aktualizuje również istniejące rekordy.
wiele operacji dodawania kolumn SQL dla istniejącej tabeli SQL z kolumną identity
może być konieczne dodanie wielu kolumn do istniejącej tabeli SQL., Możemy to zrobić za pomocą tego samego polecenia Alter table.
w poniższym zapytaniu dodaliśmy dwie kolumny ZipCode i StateCode w jednym poleceniu Alter Table. Musimy określić wszystkie kolumny do dodania w podobnym formacie.,
1
2
3
4
|
ALTER TABLE Employee_new
ADD ZipCode INT NULL,
StateCode INT NULL;
GO
|
We can get details of all columns and their properties using sp_help command.,
1
div
|
|
sp_help ’employee_new'
|
SQL dodawanie kolumn do istniejącej tabeli SQL za pomocą projektanta tabeli w SSMS
w poprzednich przykładach użyliśmy T-SQL do dodawania kolumn w istniejącej tabeli. Możemy nie być zaznajomieni z pisaniem kodu t-SQL. Możemy również użyć SSMS GUI, aby dodać kolumnę.,
kliknij prawym przyciskiem myszy na tabeli i kliknij na projekt.
otwiera projektant tabeli. Możemy zobaczyć wszystkie istniejące kolumny, ich typy danych, wartości domyślne i inne właściwości dla określonej tabeli w tabeli projektant
podaj nazwę kolumny i wybierz typy danych z listy rozwijanej. Możemy dodać do tego wiele kolumn z odpowiednimi typami danych.
Po zakończeniu zapisz i zamknij projektanta tabeli w SSMS., Jeśli spróbujesz go zamknąć bez zapisywania zmian, otrzymamy również komunikat ostrzegawczy.
Kliknij tak, aby zapisać nową kolumnę w istniejącej tabeli. Możemy albo uruchomić instrukcję Select, aby zweryfikować nową kolumnę, albo użyć polecenia sp_help, aby wyświetlić listę wszystkich kolumn i ich właściwości.
1
|
pracownik sp_help.,'
|
na poniższym zrzucie ekranu możemy zobaczyć nową kolumnę w tabeli pracowników.
podsumowanie
w tym artykule zbadaliśmy operacje dodawania kolumn SQL, aby dodać nową kolumnę do istniejącej tabeli SQL. Możemy do tego użyć zarówno GUI jak i metody transact SQL. Mam nadzieję, że ten artykuł okazał się pomocny. Możesz przesłać opinię lub komentarze w sekcji komentarze poniżej.,
- Autor
- Ostatnie posty
jest twórcą jednego z największych darmowych internetowych zbiorów artykułów na jeden temat, z jego 50-częściową serią na SQL Server Always On Availability Groups. W oparciu o swój wkład w społeczność SQL Server został wyróżniony różnymi nagrodami, w tym prestiżowym „najlepszym autorem roku” nieprzerwanie w 2020 i 2021 w sqlshack.,
Raj jest zawsze zainteresowany nowymi wyzwaniami, więc jeśli potrzebujesz pomocy Konsultacyjnej na dowolny temat poruszany w jego pismach, można do niego dotrzeć w rajendra.gupta16@gmail.,com
Zobacz wszystkie posty Rajendra Gupta
- Wykonywanie mniejszych i większych aktualizacji wersji dla AWS RDS SQL Server – 29 stycznia 2021
- wdrażanie instancji AWS RDS PostgreSQL – 27 stycznia 2021
- migracja lokalnych baz danych SQL do AWS RDS SQL Server za pomocą AWS DMS-25 stycznia 2021