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

Dodaj kolumny do istniejącej tabeli w bazie danych SQL Server

Wprowadzenie

Tabela to dwuwymiarowa struktura logiczna i podstawowy sposób przechowywania danych w systemach zarządzania relacyjnymi bazami danych. Jego format „wiersz i kolumna” jest bardzo podobny do organizacji arkusza kalkulacyjnego.

Każdy nowy rekord wprowadzony do tabeli jest wierszem (zwanym również rekordem lub krotką), podczas gdy wiersze są pogrupowane w skończony zestaw kolumn (zwanych również polami lub atrybutami). Każda kolumna ma nazwę i typ danych i służy jako odniesienie do wyświetlania zestawów wyników podczas wyszukiwania danych z relacyjnych systemów baz danych.

W tym artykule przyjrzymy się aktualnym możliwościom dodawania nowych kolumn do istniejącej tabeli w bazie danych SQL Server. Przypadek użycia może pojawić się przy wielu okazjach. W szczególności dzieje się tak, gdy są aktualizacje aplikacji i wymagają dodania nowych kolumn.

Utwórz tabelę

Aby rozpocząć nasz krótki zestaw eksperymentów, utwórzmy małą tabelkę z czterema kolumnami zawierającymi podstawowe informacje o jakiejś firmie:

-- Listing 1: Create New Table ntab
use AU
go
create table ntab (
ID INT identity (1,1)
, CompanyName varchar(100)
, CompanyAddress varchar(200)
, DateofIncorporation datetime
);

Dodaj pojedynczą kolumnę

Aby dodać pojedynczą kolumnę do ntab tabeli, wykonujemy kod z Listingu 2. Wynikiem jest tabela z pięcioma kolumnami, jak pokazano na rysunku 1. Wygenerowaliśmy te metadane dotyczące naszej tabeli za pomocą sp_columns procedura składowana.

-- Listing 2: Add ManagingDirector Column to Empty Table

alter table ntab add ManagingDirector varchar(50);

exec sp_columns ntab;

Używając kodu z Listingu 3, wypełniamy nową tabelę 1000 wierszy.

-- Listing 3: Add Column to Empty Table
insert into ntab values ('Simplex Technologies','Plot 121 Nova Ridge II, Appolonia City','20201023','Kenneth Igiri');
GO 1000

Następnie dodajemy kolejną kolumnę TaxIdentityNumber – możemy to zrobić z powodzeniem bez widocznych narzutów na wydajność:

-- Listing 4: Add Column to Populated Table

alter table ntab add TaxIdentityNumber varchar(20);

exec sp_columns ntab;

Upuść lub dodaj wiele kolumn za pomocą polecenia ALTER TABLE

W jednej instrukcji możemy również upuścić lub dodać kolumny. Ważne:Kiedy usuwamy kolumny z tabeli z danymi, bardzo szybko tracimy dane. Z pewnością nie jest to polecenie do zabawy w produkcji.

Polecenie ALTER TABLE jest poleceniem języka definicji danych (DDL) podobnym do polecenia TRUNCATE. Operacja nie jest rejestrowana w dzienniku transakcji i nie można jej wycofać. Jeśli masz powody, aby zrobić to w środowisku produkcyjnym, powinieneś mieć kopię zapasową, aby móc wrócić do poprzedniego stanu.

-- Listing 5: Drop Column from Table

alter table ntab drop column ManagingDirector, TaxIdentityNumber;

alter table ntab add ManagingDirector varchar(50), TaxIdentityNumber varchar(20);

select * from ntab;

Ważne:Próba usunięcia kolumny posiadającej indeks zwraca błąd (patrz obrazek). Najpierw musisz wykonać kopię zapasową i usunąć indeks.

Korzystanie z GUI – Projektant tabel

Zanim przejdziemy dalej, pamiętaj, że musisz upewnić się, że używasz najnowszej wersji programu SQL Server Management Studio. Jeśli istnieje niezgodność między wersją bazy danych a wersją programu SSMS, otrzymasz następujący błąd:

Aby zmienić strukturę tabeli, otwórz Projektanta tabel w SSMS:kliknij prawym przyciskiem myszy tabelę i kliknij Projekt.

Zobaczysz ntab szczegóły tabeli:

W Projektancie tabel dodajemy nazwy kolumn, które chcemy dodać, i określamy typy danych oraz wartość null zgodnie z potrzebami.

Po zakończeniu zapisujemy tabelę, korzystając z dowolnej z dostępnych opcji. Na przykład zapoznaj się z opcją dostępną w menu paska SSMS:

Istnieje jedno ustawienie SQL Server Management Studio, które może uniemożliwić zapisanie tabeli z nowo dodanymi kolumnami. Może być konieczne wyłączenie tego ustawienia:

Narzędzia> Opcje> Projektanci> Projektanci tabel i baz danych

W tle SQL Server wykonuje ten sam kod SQL, który pokazaliśmy wcześniej (Listing 5). Wyodrębniliśmy to za pomocą programu SQL Profiler. Możesz uzyskać te same dane w przypadku wydarzeń rozszerzonych:

Gdy skończymy, możemy zobaczyć te same wyniki, co wcześniej:

dbForge Studio dla serwera SQL

dbForge Studio for SQL Server firmy Devart oferuje solidny funkcjonalny interfejs do interakcji z SQL Server. Ponieważ rozwiązanie jest podobne do SSMS, jest łatwe w obsłudze. Bezproblemowo łączy się z instancją SQL Server i umożliwia użytkownikowi płynną interakcję z obiektami SQL Server. Edycję ekspresową możesz pobrać tutaj .

Aby zmodyfikować tabelę w dbForge Studio, kliknij tę tabelę prawym przyciskiem myszy, aby wyświetlić szczegółowe właściwości.

Dodajesz nową kolumnę w taki sam sposób, jak w Projektancie tabel programu SQL Server. Należy jednak zwrócić uwagę na poziom szczegółowości pokazany dla tabeli, w tym dla tabeli DDL. Jest znacznie bardziej niezawodny niż ten dostępny w SSMS.

dbForge Studio stosuje te same zasady dodawania kolumn do tabel, co SQL Server Management Studio. DDL dla tabeli jest aktualizowany zaraz po dodaniu kolumny. Musisz jednak kliknąć ZAPISZ, aby zachować zmiany:

Wniosek

W tym artykule przedstawiono metody, których możemy użyć do dodawania kolumn do istniejącej tabeli w SQL Server, niezależnie od tego, czy ta tabela zawiera dane, czy nie.

Zilustrowaliśmy również wpływ upuszczania kolumn, gdy tabela zawiera dane. Zwróciliśmy uwagę, że polecenie ALTER TABLE jest poleceniem DDL. Nie ma dzienników ani znaczącego wpływu na wydajność. Użyj Projektanta tabel, aby wstawić kolumny między istniejącymi kolumnami, a nie na końcu listy kolumn.

Sprawdziliśmy również funkcjonalność Devart dbForge Studio 2019. Ma znacznie bardziej solidny i wygodny interfejs do tego zadania i innych podobnych zadań. Może również oferować wiele innych możliwości, które znacznie ułatwiają zarządzanie bazą danych SQL Server.

Referencje

  1. Wpływ na wydajność poleceń ALTER TABLE
  2. Zmień tabelę w T-SQL
  3. Funkcja projektanta tabel w dbForge Studio dla SQL Server

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wykonać zapytanie przekazujące DELETE w SQL Server

  2. Utwórz relację w SQL Server 2017

  3. Bazy danych systemu SQL Server — konserwacja Tempdb

  4. Zamień pojedyncze cudzysłowy w SQL Server

  5. Dołączanie do rekordu daty MAX w grupie