SQL Server, dalle fondamenta Lezione 2 / 40

Installare SQL Server e connettersi con SSMS

Developer Edition su Windows, Docker su Mac o Linux, e come scegliere tra SSMS e Azure Data Studio. Il setup da 20 minuti che userai per tutto il corso.

Il modo più veloce per non andare da nessuna parte con SQL Server è saltare l’installazione. Puoi leggere diecimila parole sugli indici, ma se non riesci a eseguire SELECT 1 sulla tua macchina, niente di tutto questo si fissa. Quindi oggi installiamo SQL Server Developer Edition, scegliamo un client, e verifichiamo che il tutto funzioni.

Questa lezione è l’unica del corso in cui le istruzioni si ramificano per sistema operativo. Scegli la tua piattaforma, segui il percorso fino in fondo, e alla fine avrai un’istanza SQL Server in esecuzione e un client che riesce a parlarci. Tempo totale: circa 20 minuti se internet non è di malumore.

Una bussola rapida

Ti servono due cose: un server (il motore che memorizza ed esegue le query) e un client (il programma in cui scrivi le query). Installiamo prima il server, poi il client.

  • Opzioni server: SQL Server Developer Edition su Windows, oppure SQL Server in Docker su qualsiasi OS, oppure Azure SQL Database nel cloud.
  • Opzioni client: SSMS (solo Windows, full-featured), Azure Data Studio (qualsiasi OS, moderno e leggero), VS Code con l’estensione mssql (qualsiasi OS, il più leggero di tutti).

Le mie raccomandazioni in un fiato: se sei su Windows, installa Developer Edition nativamente e usa SSMS. Se sei su Mac o Linux, fai girare SQL Server in Docker e usa Azure Data Studio. Se vuoi solo un setup cloud-only, crea un Azure SQL Database fascia gratuita e connettiti da Azure Data Studio. Una qualunque delle tre vie funziona per tutto il corso.

Percorso A — Windows: Developer Edition + SSMS

Se sei su Windows 10 o 11, questo è il percorso amichevole.

Passo 1: Scarica Developer Edition

Vai su microsoft.com/sql-server/sql-server-downloads e clicca “Download now” sotto Developer. Otterrai un installer minuscolo chiamato qualcosa tipo SQL2022-SSEI-Dev.exe. Eseguilo.

Passo 2: Installazione di base

Quando l’installer chiede il tipo di installazione, scegli Basic. “Custom” è per chi sa già esattamente quali funzionalità vuole. “Basic” installa il motore con valori di default sensati, che è esattamente ciò che vuoi.

Accetta il contratto di licenza. Scegli un percorso di installazione (il default va bene). Clicca Install. Vai a farti un caffè. Quando torni, vedrai una schermata di successo con:

  • Instance name: MSSQLSERVER (è l’istanza di default)
  • Connection string: Server=localhost;Database=master;Trusted_Connection=True;
  • SQL Server version: qualcosa tipo Microsoft SQL Server 2022 (16.x)

Quello è il tuo server. È in esecuzione. È in ascolto. Bene.

Se a un certo punto l’installer dice “un’installazione precedente è iniziata ma non si è completata, devi riavviare” — riavvia. Questo messaggio non è un suggerimento. SQL Server tiene il muso finché non ottiene il suo riavvio.

Passo 3: Installa SSMS

SSMS sta per SQL Server Management Studio. È un download separato dal motore. Stessa pagina, scrolla un po’ più giù. Clicca “Download SSMS” o vai direttamente su aka.ms/ssmsfullsetup. Esegui l’installer. Avanti, avanti, fatto.

Passo 4: Connettiti

Lancia SSMS. Si apre la finestra “Connect to Server”. Compila:

  • Server type: Database Engine
  • Server name: localhost (oppure . oppure .\MSSQLSERVER)
  • Authentication: Windows Authentication (non serve username/password se hai installato come te stesso)

Clicca Connect. Se l’Object Explorer a sinistra si popola con un albero che parte dal nome del tuo server, hai finito. Hai SQL Server in esecuzione e SSMS connesso.

Passo 5: Esegui la tua prima query

Clicca il pulsante “New Query” nella toolbar. Si apre un tab. Scrivi:

SELECT @@VERSION;

Premi F5 per eseguire. Compare una griglia di risultati in fondo con una stringa lunga che inizia con Microsoft SQL Server 2022 (RTM) o simile. Congratulazioni. Stai eseguendo SQL Server.

Percorso B — Mac o Linux: Docker + Azure Data Studio

SQL Server non si installa nativamente su Mac. Su Linux puoi installarlo nativamente, ma Docker è più facile e ti dà lo stesso ambiente di tutti gli altri. Questo percorso funziona identicamente su entrambi.

Passo 1: Installa Docker Desktop

Prendi Docker Desktop da docker.com se non ce l’hai già. Avvialo. Accetta i default. Aspetta che l’icona della balena nella barra dei menu smetta di rimbalzare.

Passo 2: Pull e run dell’immagine SQL Server

Apri un terminale ed esegui:

docker pull mcr.microsoft.com/mssql/server:2022-latest

docker run -e "ACCEPT_EULA=Y" \
           -e "MSSQL_SA_PASSWORD=YourStrong!Passw0rd" \
           -p 1433:1433 \
           --name sqlserver \
           -d mcr.microsoft.com/mssql/server:2022-latest

Tutto qui. Ora hai un container SQL Server 2022 in esecuzione in background, in ascolto sulla porta 1433 del tuo localhost. La password SA (“system administrator”) è YourStrong!Passw0rd — cambiala in qualcosa che ricordi, ma deve rispettare la password policy di SQL Server (almeno 8 caratteri, mix di maiuscole, minuscole, cifre, simboli). Le password troppo deboli falliscono in silenzio e ti ritroverai 20 minuti a chiederti perché non riesci a connetterti.

Verifica che il container sia in esecuzione:

docker ps

Dovresti vedere una riga che menziona sqlserver con stato Up X seconds.

Passo 3: Installa Azure Data Studio

Scarica Azure Data Studio da azure.microsoft.com/products/data-studio. È un editor gratuito basato su Electron, in stile VS Code, per SQL Server. Funziona su Mac, Linux, e Windows. Installalo nel modo solito.

Passo 4: Connettiti

Lancia Azure Data Studio. Clicca “New Connection” nella sidebar. Compila:

  • Server: localhost,1433
  • Authentication type: SQL Login
  • User name: sa
  • Password: YourStrong!Passw0rd (o quella che hai impostato)
  • Database: lascia vuoto (ci connetteremo a master di default)
  • Name (optional): “Local Docker SQL Server”

Clicca Connect. Dovresti vedere una dashboard “Home” che si popola con un badge verde “Connected”.

Passo 5: Esegui la tua prima query

Clicca “New Query”. Si apre un tab. Scrivi:

SELECT @@VERSION;

Premi F5 o clicca il pulsante Run. Compare un risultato che mostra Microsoft SQL Server 2022 (RTM-CU...) e una stringa Linux. È normale — il container fa girare SQL Server basato su Linux. Stesso motore, host diverso.

Percorso C — Cloud: Azure SQL Database fascia gratuita

Se preferisci non installare niente in locale, Microsoft ha un Azure SQL Database fascia gratuita che è genuinamente gratis-per-sempre (fino a 100.000 secondi vCore al mese, che è di gran lunga più di quanto userai per questo corso). È un’opzione decente se il tuo portatile è vecchiotto o vuoi esercitarti a connetterti a un database cloud.

Schema generale: crea un account Azure gratuito (serve la carta di credito per identità, niente addebiti per uso fascia gratuita), vai sul Portale Azure, cerca “Azure SQL”, crea un nuovo database, scegli “Free” come fascia di prezzo, annota il nome del server e le credenziali admin, poi connettiti con Azure Data Studio. Ci vogliono circa 15 minuti se è la prima volta e 5 minuti se hai già usato Azure.

Non ti porto a spasso passo-passo nella UI di Azure perché Microsoft la cambia all’incirca ogni sei mesi e qualunque screenshot includa sarà sbagliato a febbraio. Ma se cerchi “Azure SQL Database free tier quickstart” la documentazione corrente ti accompagnerà senza problemi.

Per il resto del corso, assumerò che tu abbia un qualche SQL Server con cui parlare, e segnalerò quando una funzionalità specifica non esiste su Azure SQL Database (alcune lezioni su SQL Agent e il First Responder Kit rientrano in questa categoria).

SSMS vs Azure Data Studio, l’unica scelta vera

Due client, entrambi gratuiti, entrambi di Microsoft. Quale dovresti usare?

SSMS, se sei su Windows, è ancora lo strumento più potente per il lavoro su SQL Server. Object Explorer completo con ogni possibile azione del tasto destro. Diagrammi del database. Designer per i maintenance plan. Profiler. Activity Monitor. Integrazione SSRS e SSIS. Ispezione approfondita dei piani di esecuzione. Se diventerai un DBA a tempo pieno, vivrai dentro SSMS.

Azure Data Studio, dall’altra parte, è l’editor moderno cross-platform. Ha l’aspetto e il comportamento di VS Code. Ha tab, temi, integrazione git, terminale incorporato, notebook in stile Jupyter, e un ecosistema di plugin. Per la scrittura di query quotidiana e lavoro DBA leggero, è più piacevole di SSMS. Manca di alcuni tool DBA profondi (niente profiler, niente designer di maintenance plan), ma sono cose che non rimpiangerai finché non sarai ben dentro la tua carriera da DBA.

Il mio consiglio: se sei su Windows, installa entrambi e usa quello che ti va in base all’umore. Per il corso, la maggior parte degli screenshot saranno da SSMS perché è quello che mostrano la maggior parte dei tutorial su SQL Server, ma ogni esempio di codice funziona in entrambi.

Il database di esempio AdventureWorks

A un certo punto nelle prossime lezioni vorremo un database già popolato con cui giocare. I due canonici sono AdventureWorks (un database OLTP di un negozio di bici) e Northwind (un’antica trading company, molto più piccolo). Useremo AdventureWorks.

Per installarlo: vai su github.com/Microsoft/sql-server-samples, scarica il file AdventureWorks2022.bak, mettilo in una cartella che SQL Server possa leggere, e ripristinalo:

RESTORE DATABASE AdventureWorks2022
FROM DISK = N'C:\path\to\AdventureWorks2022.bak'
WITH MOVE N'AdventureWorks2022'
        TO N'C:\SQLData\AdventureWorks2022.mdf',
     MOVE N'AdventureWorks2022_log'
        TO N'C:\SQLData\AdventureWorks2022_log.ldf',
     REPLACE;

Se stai girando con Docker, copia prima il file .bak nel container con docker cp, e regola i percorsi a qualcosa sotto /var/opt/mssql/data/. Copriremo backup e restore come si deve nella lezione 31; per ora questo singolo comando basta.

Sanity check: le quattro query da eseguire ora

Una volta connesso, incolla queste quattro query in una nuova finestra ed eseguile. Se tutte e quattro restituiscono risultati sensati, la tua installazione è pronta per il resto del corso.

-- 1. Versione e edizione
SELECT @@VERSION AS version_string,
       SERVERPROPERTY('Edition')          AS edition,
       SERVERPROPERTY('ProductVersion')   AS product_version,
       SERVERPROPERTY('ProductLevel')     AS product_level;

-- 2. Elenca i database di sistema
SELECT name, database_id, create_date
FROM sys.databases
ORDER BY database_id;

-- 3. Chi sono io, che sessione sono?
SELECT SUSER_SNAME()    AS login_name,
       USER_NAME()      AS user_name,
       @@SPID           AS session_id,
       HOST_NAME()      AS client_host;

-- 4. Una query di calcolo minuscola
SELECT 1 + 1 AS two_plus_two,
       GETDATE() AS server_time;

La query 1 ti dice con cosa stai parlando. La query 2 dovrebbe mostrarti almeno master, tempdb, model, e msdb — i quattro database di sistema di cui SQL Server ha bisogno per girare. La query 3 ti dice chi SQL Server pensa che tu sia. La query 4 è lo smoke test. Se restituisce 2 e la data di oggi, sei a posto.

Cosa fare se qualcosa è andato storto

I tre errori più comuni alla prima installazione:

  • “Cannot connect to server, error 40.” Il servizio SQL Server non è in esecuzione, o TCP/IP non è abilitato. Apri SQL Server Configuration Manager (Windows), espandi “SQL Server Network Configuration” → “Protocols for MSSQLSERVER”, e assicurati che TCP/IP sia Enabled. Riavvia il servizio SQL Server.
  • “Login failed for user ‘sa’.” Sulle installazioni Windows locali, il login SA è disabilitato di default e dovresti usare Windows Authentication. Su Docker, ricontrolla di stare usando la password SA che hai impostato nel comando docker run.
  • “The password didn’t meet complexity requirements.” Fai sì che la password abbia almeno 8 caratteri, con almeno una maiuscola, una minuscola, una cifra, e un simbolo. SQL Server rifiuta in silenzio le password più deboli e il messaggio d’errore non è sempre utile.

Se sei davvero bloccato, docker logs sqlserver (Docker) o SQL Server Configuration Manager (Windows) ti diranno cosa è andato storto. Nove volte su dieci è uno dei tre errori sopra.

Prossima lezione: database, schema, tabelle — le matrioske. Porta il tuo database di esempio, il tuo caffè, e la tua curiosità.

Cerca