Database SQL Server: creazione, modifica, eliminazione e ripristino

⚡ Riepilogo intelligente

I database di SQL Server sono contenitori che contengono tabelle, viste, stored procedure e altri oggetti. Creazione, modifica, eliminazionepingIl ripristino di un database può essere effettuato tramite SQL Server Management Studio o con istruzioni Transact-SQL.

  • Banca dati: Un database SQL Server memorizza tabelle, viste, procedure e funzioni in un unico contenitore organizzato e interconnesso.
  • 🧩 Sistema contro utente: I database di sistema (master, msdb, model, tempdb, resource) vengono installati automaticamente; i database utente vengono creati dall'utente.
  • 🖱️ Creare: È possibile aggiungere un database tramite la finestra di dialogo Nuovo database di Esplora oggetti oppure con l'istruzione CREATE DATABASE.
  • età: Rinominare un database o modificarne i file e le opzioni utilizzando il comando ALTER DATABASE o il menu Rinomina.
  • 🗑️ Far cadere: Per eliminare un database utente, utilizzare il comando DROP DATABASE o l'opzione Elimina; i database di sistema non possono essere eliminati.
  • 💾 Ristabilire: Ricostruisci un database da un file di backup .bak utilizzando il comando RESTORE DATABASE.

Creazione, modifica, eliminazione e ripristino di database SQL Server

Cos'è il database?

Un database è una raccolta di oggetti come con tabelle, viste, stored procedure, trigger e funzioni. In SQL ServerUn database è la struttura organizzata in cui tutti questi oggetti correlati vengono archiviati e interconnessi.

Consideriamo alcuni esempi tratti dalla vita reale:

  • Una libreria è il luogo in cui vengono riposti i libri.
  • Una casa è il luogo in cui viviamo.
  • Un parcheggio è un luogo dove vengono parcheggiati i veicoli, e gli esempi in tal senso sono innumerevoli.

Allo stesso modo, un database è una sorta di contenitore per tutte le nostre tabelle, viste e stored procedure. Tecnicamente, un database memorizza i dati in modo ben organizzato per facilitarne l'accesso e il recupero. In SQL Server esistono due tipi di database:

  • Database di sistema: Questi database vengono creati automaticamente durante l'installazione di SQL Server. Svolgono un ruolo cruciale nel server, soprattutto per garantire il corretto funzionamento degli oggetti del database. Esempi di database di sistema di SQL Server includono master, msdb, model, tempdb e resource.
  • Database degli utenti: Questi vengono creati da utenti di database come te, ai quali è stato concesso l'accesso per la creazione di database.

Regole per creare un database

Innanzitutto, è necessario conoscere le regole di base per la creazione di un nuovo database:

  • I nomi dei database devono essere univoci all'interno di un'istanza di SQL Server.
  • I nomi dei database possono contenere un massimo di 128 caratteri.
  • L'istruzione CREATE DATABASE deve essere eseguita in modalità auto-commit.

L'immagine seguente illustra i due approcci disponibili per la creazione di un database in SQL Server.

Due modi per creare un database SQL Server: Management Studio e Transact-SQL.

Esistono due modi per creare un database in SQL Server:

Come creare un database in SQL Server Management Studio

Ecco una procedura dettagliata per creare un database in SQL Server Management Studio:

Passo 1) Nella finestra "Esplora oggetti", fai clic con il pulsante destro del mouse su "Database" e seleziona "Nuovo database".

Il menu contestuale che appare cliccando con il tasto destro del mouse e che include l'opzione "Nuovo database" è mostrato di seguito.

Fare clic con il pulsante destro del mouse sul nodo Database in Esplora oggetti con l'opzione Nuovo database selezionata.

Passo 2) Viene visualizzata la schermata "Nuovo database". Immettere un "Nome database". La colonna "Nome logico" viene compilata automaticamente con:

  • Edu – Tipo di file: Righe Dati e gruppo di file: PRIMARY
  • Edu_log – Tipo di file: LOG e Gruppo di file: 'Non applicabile'

Di seguito viene mostrata la finestra di dialogo Nuovo database con il nome del database e i relativi file logici.

Finestra di dialogo Nuovo database che mostra il nome del database Edu e i file logici Edu e Edu_log.

Qui:

  • A) Edu (Tipo di file: Dati di riga, Gruppo di file: PRIMARY) è il file di dati .mdf.
  • B) Edu_log (Tipo di file: LOG, Gruppo di file: 'Non applicabile') è il file di log .ldf.

Passo 3) (Facoltativo) Per impostazioni più complesse, è possibile accedere alle pagine "Opzioni" e "Gruppi di file". A livello principiante, la creazione del database dalla scheda Generale sarà sufficiente.

Le pagine Opzioni e Gruppi di file sono mostrate qui sotto.

Nuove pagine per le opzioni del database e i gruppi di file per le impostazioni avanzate.

Passo 4) Fai clic su "Aggiungi" (il pulsante OK) per creare il database.

Il pulsante che conferma la creazione è evidenziato qui sotto.

Pulsante OK nella finestra di dialogo Nuovo database che crea il database Edu

Risultato: Il database 'Edu' è stato creato. È possibile espandere il database 'Edu', che conterrà tabelle, viste e così via. Inizialmente questi database sono vuoti finché non si creano nuove tabelle, viste, ecc.

Esplora oggetti che mostra il database Edu appena creato con le relative cartelle vuote.

Visualizza la query di origine: È possibile visualizzare la query sorgente del database "Edu" appena creato. Procedere come segue: fare clic con il pulsante destro del mouse sul nome del database > Script Database come > CREA in > Nuova finestra Editor query.

Script Database come CREA nel menu contestuale della finestra dell'editor di query

Finestra di interrogazione: Lo script CREATE generato si apre in una nuova finestra di query, come mostrato di seguito.

Finestra dell'editor di query che visualizza lo script CREATE DATABASE generato automaticamente per Edu

Crea sceneggiatura:

USE [master]
GO

CREATE DATABASE [Edu]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'Edu', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
 LOG ON 
( NAME = N'Edu_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )

Crea database con T-SQL

Un altro metodo consiste nello scrivere una query T-SQL per creare un database e poi eseguirla. Analizziamo la query T-SQL più semplice per la creazione di un database.

Sintassi:

CREATE DATABASE <Database_name>

Query:

CREATE DATABASE [Edu_TSQL_file]

Fai clic su "Esegui" per avviare la query, come mostrato di seguito.

Il pulsante Esegui nella barra degli strumenti di SSMS viene utilizzato per eseguire la query CREATE DATABASE

Risultato: È possibile visualizzare il file Edu_TSQL_file creato nell'Esplora oggetti SQL.

Esplora oggetti che elenca il database Edu_TSQL_file creato con Transact-SQL

Vediamo ora come creare un database con file .mdf e .ldf espliciti. In questo caso, è possibile specificare il percorso del file come parte esplicita della query.

Sintassi:

CREATE DATABASE database_name   
[ CONTAINMENT = { NONE | PARTIAL } ]  
[ ON   
      [ PRIMARY ] <filespec> [ ,...n ]   
      [ , <filegroup> [ ,...n ] ]   
      [ LOG ON <filespec> [ ,...n ] ]   
];

Query:

CREATE DATABASE [Edu_TSQL_file]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'Edu_TSQL_file', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_TSQL_file.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
 LOG ON 
( NAME = N'Edu_TSQL_file_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_TSQL_file_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )

Il database creato, completo di dati espliciti e file di registro, viene visualizzato in Esplora oggetti, come mostrato di seguito.

Esplora oggetti che mostra il database Edu_TSQL_file creato con file .mdf e .ldf espliciti.

Come modificare il database

Analogamente alla query CREATE DATABASE, è possibile anche modificare un database. Si può rinominare il database, cambiare la posizione o le impostazioni di un file e altro ancora.

Regole di base per la modifica di un database:

  • L'istruzione ALTER DATABASE deve essere eseguita in modalità auto-commit.
  • ALTER DATABASE non è consentito in una transazione esplicita o implicita.

Esistono due modi per modificare un database in SQL Server:

  • SQL Server Management Studio
  • Transazioni SQL

Come modificare il database in SQL Server Management Studio

Di seguito sono riportati i passaggi per modificare un database in SQL Server Management Studio. Proviamo a modificare il nome del nostro database preesistente "Edu". Il database preesistente "Edu" è mostrato di seguito in Esplora oggetti.

Database Edu preesistente selezionato nell'elenco dei database di Esplora oggetti

Passo 1) Rinominare il database. Fare clic con il pulsante destro del mouse sul nome del database e selezionare "Rinomina".

Fai clic con il pulsante destro del mouse sul database Edu e seleziona l'opzione Rinomina nel menu contestuale.

Passo 2) Il nome del database diventa modificabile. Inserisci il nuovo nome e premi Invio.

Campo nome database Edu modificabile, pronto per un nuovo nome

Risultato: Il database è stato rinominato da 'Edu' a 'Edu_Alter'.

Esplora oggetti che mostra il database rinominato da Edu a Edu_Alter

Modificare il database con Transact-SQL

Ora modifichiamo un database utilizzando T-SQL.

Sintassi:

ALTER DATABASE <Databse_name>              
MODIFY NAME = <New Name>

Query:

ALTER DATABASE Edu_TSQL
MODIFY NAME = Edu_TSQL_Alter;

Eseguire la query precedente facendo clic su "Esegui".

Risultato: Il database è stato rinominato da 'Edu_TSQL' a "Edu_TSQL_Alter", come mostrato di seguito.

Esplora oggetti che mostra il database rinominato in Edu_TSQL_Alter dopo ALTER DATABASE

Sintassi generale: La sintassi completa di ALTER DATABASE supporta numerose opzioni, tra cui la ridenominazione, la collazione, le opzioni dei file e il livello di compatibilità.

ALTER DATABASE { database_name  | CURRENT }  
{   MODIFY NAME = new_database_name   
  | COLLATE collation_name  
  | <file_and_filegroup_options>  
  | SET <option_spec> [ ,...n ] [ WITH <termination> ] 
  | SET COMPATIBILITY_LEVEL = { 140 | 130 | 120 | 110 | 100 | 90 }   
} ;

Nota: I livelli di compatibilità indicati sopra si riferiscono a versioni precedenti. Le versioni attuali aggiungono il supporto per la versione 150 (SQL Server 2019), la 160 (SQL Server 2022) e la 170 (SQL Server 2025), pur continuando a supportare diverse versioni precedenti.

Modifica del nome del file .mdf/.ldf

Query:

Alter DATABASE Edu_TSQL_Alter;
MODIFY FILE ( NAME = Edu_TSQL, NEWNAME = Edu_TSQL_newName );

Il file logico rinominato si riflette nelle proprietà del database, come mostrato di seguito.

Proprietà del database che confermano il file logico rinominato Edu_TSQL_newName

Modifica del percorso del file .mdf/.ldf

Query:

Alter DATABASE Edu_TSQL_Alter;
MODIFY FILE ( NAME = Edu_TSQL_NewName, FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\New_File\Edu_TSQL_log.ldf' );

Il percorso aggiornato del file del database è mostrato di seguito.

Pagina del file del database che mostra la nuova posizione del file di log .ldf

Elimina database

Esistono due modi per eliminare (rimuovere) un database in SQL Server:

  • SQL Server Management Studio
  • Transazioni SQL

Come eliminare il database in SQL Server Management Studio

Di seguito viene descritta la procedura per eliminare un database in SQL Server Management Studio. Proviamo a eliminare il database preesistente 'Edu_Alter'.

Passo 1) Fai clic con il pulsante destro del mouse sul database, seleziona "Elimina" e poi fai clic su "OK".

Finestra di dialogo Elimina oggetto per il trascinamentoping il database Edu_Alter in SSMS

Risultato: 'Edu_Alter' è stato eliminato dall'elenco del database 'Esplora oggetti'.

Elenco dei database di Esplora oggetti dopo l'eliminazione del database Edu_Alter

Elimina il database utilizzando Transact-SQL

Proviamo a eliminare il database preesistente 'Edu_TSQL_Alter'.

Sintassi:

DROP DATABASE <Databse_name>

Query:

USE master;  
GO  
DROP DATABASE Edu_TSQL_Alter;  
GO

Eseguire la query precedente facendo clic su "Esegui".

Risultato: 'Edu_TSQL_Alter' viene eliminato dall'elenco del database in 'Esplora oggetti', come mostrato di seguito.

Elenco dei database di Esplora oggetti dopo l'eliminazione del database Edu_TSQL_Alter tramite T-SQL.

Ripristina il database in SQL Server

È possibile creare un database ripristinando un database di cui era stato precedentemente eseguito il backup. Questa operazione può essere eseguita tramite il comando RESTORE DATABASE, che ha la seguente sintassi:

restore Database <database name> from disk = '<Backup file location + filename>

La query deve essere eseguita all'interno della finestra di query, proprio come i comandi precedenti. Ad esempio:

restore database Edu from disk = 'C:\Backup\Edu_full_backup.bak'

È possibile utilizzare anche la navigazione tramite interfaccia grafica: fare clic con il pulsante destro del mouse su Database > Ripristina database > Dispositivo > importare il file di backup > fare clic su OK.

DOMANDE FREQUENTI

La creazione di un database richiede l'autorizzazione CREATE DATABASE, CREATE ANY DATABASE o ALTER ANY DATABASE nel database master. Un membro del ruolo server sysadmin o dbcreator, o un utente con autorizzazione adeguata accesso, può eseguire l'istruzione.

Una singola istanza di SQL Server può contenere fino a 32,767 database. Questa cifra rappresenta un limite architetturale rigido; in pratica, i costi relativi a memoria, spazio di archiviazione e amministrazione rendono preferibili numeri molto inferiori per ottenere buone prestazioni.

No. I database di sistema come master, model, msdb, tempdb e resource sono necessari al motore e non possono essere eliminati. Solo i database utente creati dall'utente possono essere eliminati con il comando DROP DATABASE o con l'opzione Elimina.

SIZE imposta la dimensione iniziale del file, MAXSIZE imposta la dimensione massima che il file può raggiungere e FILEGROWTH imposta la quantità di spazio aggiunta ogni volta che il file si espande. Queste impostazioni si applicano sia ai file di dati che ai file di log.

COMPATIBILITY_LEVEL controlla il comportamento di elaborazione delle query utilizzato da un database. I valori correnti includono 140 (SQL Server 2017), 150 (2019), 160 (2022) e 170 (2025). Il comando ALTER DATABASE SET COMPATIBILITY_LEVEL lo modifica senza spostare il database su un nuovo server.

DROP DATABASE elimina definitivamente il database e i relativi file .mdf e .ldf. Rimozione di un databaseLINE L'accesso viene interrotto solo in parte, lasciando i file sul disco, in modo da poterli riattivare in seguito senza dover eseguire un ripristino.

Sì. Le serrature scorrevoli portatili e i catenacci a superficie possono essere usati per mettere in sicurezza una porta a scomparsa dall'esterno. Alcuni kit con catena di sicurezza consentono anche il bloccaggio esterno con chiave o manopola girevole. Copilota GitHub È possibile creare istruzioni CREATE DATABASE, ALTER DATABASE e DROP DATABASE tramite prompt in linguaggio naturale all'interno di SSMS o del proprio editor. Prima di eseguirle su un server reale, è sempre necessario verificare i percorsi, le dimensioni e le opzioni dei file generati.

L'intelligenza artificiale e l'apprendimento automatico supportano il provisioning suggerendo dimensioni dei file e impostazioni di crescita, prevedendo la capacità, individuando discrepanze di configurazione e segnalando operazioni DROP o ALTER rischiose. Forniscono supporto all'amministratore del database, senza sostituirne un'attenta revisione.

Riassumi questo post con: