Introduzione
Una tabella è una struttura logica bidimensionale e il mezzo fondamentale per memorizzare i dati nei sistemi di gestione di database relazionali. Il suo formato "riga e colonna" è molto simile all'organizzazione del foglio di calcolo.
Ogni nuovo record introdotto in una tabella è una riga (chiamata anche record o tupla), mentre le righe sono raggruppate in un insieme finito di colonne (chiamate anche campi o attributi). Ogni colonna ha un nome e un tipo di dati e serve come riferimento per visualizzare i set di risultati quando si eseguono query sui dati dai sistemi di database relazionali.
In questo articolo esploriamo le opzioni correnti che ci consentono di aggiungere nuove colonne a una tabella esistente nel database di SQL Server. Il caso d'uso può verificarsi in molte occasioni. In particolare, accade quando ci sono aggiornamenti per un'applicazione e richiedono l'aggiunta di nuove colonne.
Crea una tabella
Per iniziare la nostra breve serie di esperimenti, creiamo una piccola tabella con quattro colonne contenente informazioni di base su alcune aziende:
-- 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
);
Aggiungi una singola colonna
Per aggiungere una singola colonna a ntab tabella, eseguiamo il codice fornito nel Listato 2. Il risultato è una tabella a cinque colonne, come mostrato nella Figura 1. Abbiamo generato questi metadati sulla nostra tabella con sp_columns procedura memorizzata.
-- Listing 2: Add ManagingDirector Column to Empty Table
alter table ntab add ManagingDirector varchar(50);
exec sp_columns ntab;
Usando il codice nel Listato 3, popolamo una nuova tabella con 1000 righe.
-- 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
Quindi, aggiungiamo un'altra colonna TaxIdentityNumber – possiamo farlo con successo senza un apparente sovraccarico di prestazioni:
-- Listing 4: Add Column to Populated Table
alter table ntab add TaxIdentityNumber varchar(20);
exec sp_columns ntab;
Rilascia o aggiungi più colonne usando il comando ALTER TABLE
In una singola istruzione, possiamo anche eliminare o aggiungere colonne. Importante:quando eliminiamo colonne da una tabella con dati, perdiamo i dati molto rapidamente. Non è certamente un comando con cui giocare in produzione.
Il comando ALTER TABLE è un comando DDL (Data Definition Language) simile a TRUNCATE. L'operazione non viene acquisita nel registro delle transazioni ed è impossibile ripristinarla. Se hai motivi per farlo in produzione, dovresti avere un backup in modo da poter tornare allo stato precedente.
-- 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;
Importante:quando si tenta di eliminare una colonna con un indice, viene restituito un errore (vedere l'immagine). Innanzitutto, devi eseguire il backup ed eliminare l'indice.
Utilizzo della GUI – Designer tabelle
Prima di procedere, tieni presente che devi assicurarti di utilizzare la versione più recente di SQL Server Management Studio. Se c'è una mancata corrispondenza tra la versione del database e la tua versione SSMS, riceverai il seguente errore:
Per modificare la struttura della tabella, apri Designer tabelle su SSMS:fai clic con il pulsante destro del mouse sulla tabella e fai clic su Design.
Vedrai ntab dettagli tabella:
In Progettazione tabelle, aggiungiamo i nomi delle colonne che desideriamo aggiungere e specifichiamo i tipi di dati e l'annullamento dei valori desiderati.
Una volta terminato, salviamo la tabella utilizzando una delle opzioni disponibili. Ad esempio, fare riferimento all'opzione disponibile nel menu della barra SSMS:
Esiste un'impostazione di SQL Server Management Studio, che potrebbe impedire il salvataggio della tabella con le colonne appena aggiunte. Potrebbe essere necessario disabilitare questa impostazione:
Strumenti> Opzioni> Designer> Designer tabelle e database
In background, SQL Server esegue lo stesso SQL che abbiamo mostrato in precedenza (Listato 5). Lo abbiamo estratto usando SQL Profiler. Puoi ottenere gli stessi dati con gli eventi estesi:
Una volta terminato, possiamo vedere gli stessi risultati di prima:
dbForge Studio per SQL Server
dbForge Studio per SQL Server della società Devart offre una solida interfaccia funzionale per l'interazione con SQL Server. Poiché la soluzione è simile a SSMS, è facile da usare. Si collega senza problemi all'istanza di SQL Server e consente all'utente di interagire senza problemi con gli oggetti di SQL Server. Puoi scaricare l'edizione express qui .
Per modificare una tabella in dbForge Studio, fare clic con il pulsante destro del mouse su quella tabella per visualizzare le proprietà dettagliate.
Si aggiunge una nuova colonna nello stesso modo in cui si fa in Progettazione tabelle di SQL Server. Tuttavia, notare il livello di dettaglio mostrato per la tabella, incluso il DDL della tabella. È molto più robusto di quello disponibile in SSMS.
dbForge Studio segue le stesse regole di aggiunta di colonne alle tabelle di SQL Server Management Studio. Il DDL per la tabella viene aggiornato non appena si aggiunge una colonna. Tuttavia, devi fare clic su SALVA per mantenere le modifiche:
Conclusione
Questo articolo ha illustrato i metodi che possiamo utilizzare per aggiungere colonne a una tabella esistente in SQL Server, indipendentemente dal fatto che la tabella contenga dati o meno.
Abbiamo anche illustrato l'impatto dell'eliminazione delle colonne quando la tabella contiene dati. Abbiamo sottolineato che il comando ALTER TABLE è un comando DDL. Non ci sono registri e nemmeno un impatto significativo sulle prestazioni. Utilizza Progettazione tabelle per inserire colonne tra colonne esistenti anziché alla fine dell'elenco delle colonne.
Abbiamo anche esaminato la funzionalità di Devart dbForge Studio 2019. Ha un'interfaccia molto più robusta e conveniente per questa attività e altre attività simili. Può anche offrire molte altre funzionalità per semplificare notevolmente la gestione del database di SQL Server.
Riferimenti
- Impatto sulle prestazioni dei comandi ALTER TABLE
- Alterare la tabella in T-SQL
- Funzione Progettazione tabelle in dbForge Studio per SQL Server