sql >> Databáze >  >> RDS >> Sqlserver

Přidat sloupce do existující tabulky v databázi SQL Server

Úvod

Tabulka je dvourozměrná logická struktura a základní prostředek pro ukládání dat v systémech správy relačních databází. Jeho formát „řádků a sloupců“ je velmi podobný organizaci tabulky.

Každý nový záznam zavedený do tabulky je řádek (nazývaný také záznam nebo n-tice), zatímco řádky jsou seskupeny do konečné sady sloupců (také nazývané pole nebo atributy). Každý sloupec má název a datový typ a slouží jako reference pro zobrazení sad výsledků při dotazování na data z relačních databázových systémů.

V tomto článku prozkoumáme aktuální možnosti, které nám umožňují přidávat nové sloupce do existující tabulky v databázi SQL Server. Případ použití může nastat při mnoha příležitostech. Zejména se to stává, když jsou k dispozici aktualizace pro aplikaci a vyžadují přidání nových sloupců.

Vytvořte tabulku

Chcete-li začít naši krátkou sadu experimentů, vytvořte malou tabulku se čtyřmi sloupci obsahujícími základní informace o nějaké společnosti:

-- 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
);

Přidat jeden sloupec

Chcete-li přidat jeden sloupec do ntab tabulky, spustíme kód uvedený ve výpisu 2. Výsledkem je tabulka s pěti sloupci, jak je znázorněno na obrázku 1. Tato metadata o naší tabulce jsme vygenerovali pomocí sp_columns uložená procedura.

-- Listing 2: Add ManagingDirector Column to Empty Table

alter table ntab add ManagingDirector varchar(50);

exec sp_columns ntab;

Pomocí kódu ve výpisu 3 naplníme novou tabulku 1000 řádky.

-- 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

Poté přidáme další sloupec TaxIdentityNumber – můžeme tak učinit úspěšně bez zjevné režie výkonu:

-- Listing 4: Add Column to Populated Table

alter table ntab add TaxIdentityNumber varchar(20);

exec sp_columns ntab;

Přetáhněte nebo přidejte více sloupců pomocí příkazu ALTER TABLE

V jednom příkazu můžeme také vypustit nebo přidat sloupce. Důležité:Když z tabulky s daty vypustíme sloupce, velmi rychle o data přijdeme. Rozhodně to není příkaz, s nímž bychom si měli hrát ve výrobě.

Příkaz ALTER TABLE je příkaz jazyka DDL (Data Definition Language) podobný příkazu TRUNCATE. Operace není zachycena v protokolu transakcí a není možné ji vrátit zpět. Pokud máte důvody to udělat v produkci, měli byste mít zálohu, abyste se mohli vrátit do předchozího stavu.

-- 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;

Důležité:Když se pokusíte zrušit sloupec s indexem, vrátí chybu (viz obrázek). Nejprve musíte zazálohovat a zrušit index.

Použití GUI – Návrhář tabulek

Než budeme pokračovat, mějte na paměti, že musíte použít nejnovější verzi SQL Server Management Studio. Pokud dojde k neshodě mezi verzí databáze a vaší verzí SSMS, zobrazí se následující chyba:

Chcete-li změnit strukturu tabulky, otevřete Návrhář tabulek na SSMS:klikněte pravým tlačítkem na tabulku a klikněte na Návrh.

Zobrazí se ntab podrobnosti o tabulce:

V Návrháři tabulek přidáme názvy sloupců, které chceme přidat, a podle potřeby určíme datové typy a možnost null.

Po dokončení tabulku uložíme pomocí kterékoli z dostupných možností. Viz například možnost dostupná v nabídce lišty SSMS:

Existuje jedno nastavení SQL Server Management Studio, které může bránit ukládání tabulky s nově přidanými sloupci. Možná budete muset toto nastavení deaktivovat:

Nástroje> Možnosti> Návrháři> Návrháři tabulek a databází

Na pozadí SQL Server spouští stejný SQL, který jsme ukázali dříve (výpis 5). Extrahovali jsme to pomocí SQL Profiler. Stejná data můžete získat pomocí Extended Events:

Jakmile skončíme, můžeme vidět stejné výsledky jako předtím:

dbForge Studio pro SQL Server

dbForge Studio pro SQL Server od společnosti Devart nabízí robustní funkční rozhraní pro interakci s SQL Serverem. Jelikož je řešení podobné SSMS, je snadné jej ovládat. Bezproblémově se připojuje k instanci SQL Serveru a umožňuje uživateli hladkou interakci s objekty SQL Server. Expresní edici si můžete stáhnout zde .

Chcete-li upravit tabulku v dbForge Studio, klepněte na ni pravým tlačítkem a zobrazte podrobné vlastnosti.

Nový sloupec přidáte stejným způsobem jako v Návrháři tabulek serveru SQL Server. Všimněte si však úrovně podrobností zobrazené pro tabulku, včetně tabulky DDL. Je mnohem robustnější než ten, který je k dispozici v SSMS.

dbForge Studio se řídí stejnými pravidly přidávání sloupců do tabulek jako SQL Server Management Studio. DDL pro tabulku se aktualizuje, jakmile přidáte sloupec. Pro zachování změn však musíte kliknout na SAVE:

Závěr

Tento článek demonstroval metody, které můžeme použít k přidání sloupců do existující tabulky na SQL Server, ať už tato tabulka obsahuje data nebo ne.

Také jsme ilustrovali dopad vypuštění sloupců, když tabulka obsahuje data. Zdůraznili jsme, že příkaz ALTER TABLE je příkazem DDL. Neexistují žádné protokoly ani žádný významný dopad na výkon. Použijte Návrhář tabulek k vložení sloupců mezi existující sloupce, nikoli na konec seznamu sloupců.

Zkontrolovali jsme také funkčnost Devart dbForge Studio 2019. Má mnohem robustnější a pohodlnější rozhraní pro tento úkol a další podobné úkoly. Může také nabídnout mnoho dalších funkcí, které výrazně usnadní správu databáze SQL Server.

Odkazy

  1. Dopad na výkon příkazů ALTER TABLE
  2. Změnit tabulku v T-SQL
  3. Funkce Návrhář tabulek v dbForge Studio pro SQL Server

  1. Jak protokolovat dotazy v PostgreSQL

  2. Jak replikovat databázi MySQL na jiný server

  3. Jak přidat nový sloupec do existující tabulky v SQL Server (T-SQL)

  4. Jak opravit dvojitě zakódované znaky UTF8 (v tabulce utf-8)