Le 50 principali domande e risposte dell'intervista su SQL Server (2026)

Ecco le domande e le risposte al colloquio su SQL Server per i candidati più freschi ed esperti che vogliono ottenere il lavoro dei loro sogni.

Domande e risposte all'intervista su SQL Server per le matricole


1. Quali sono le due modalità di autenticazione in SQL Server?

Esistono due modalità di autenticazione:

  • Windows Moda
  • Modalita `mista

Le modalità possono essere modificate selezionando il menu Strumenti delle proprietà di configurazione di SQL Server e scegliendo la pagina Sicurezza.

👉 Download gratuito del PDF: domande e risposte all'intervista su SQL Server


2. Cos'è SQL Profiler?

SQL Profiler è uno strumento che consente all'amministratore di sistema di monitorare gli eventi nel server SQL. Viene utilizzato principalmente per acquisire e salvare dati su ciascun evento di un file o di una tabella per l'analisi.


3. Cos'è la procedura memorizzata ricorsiva?

SQL Server supporta la procedura memorizzata ricorsiva che chiama da sola. La procedura memorizzata ricorsiva può essere definita come un metodo di risoluzione dei problemi in cui la soluzione viene raggiunta ripetutamente. Può nidificare fino a 32 livelli.

CREATE PROCEDURE [dbo].[Fact]
(
@Number Integer,
@RetVal Integer OUTPUT
)
AS
DECLARE @In Integer
DECLARE @Out Integer
IF @Number != 1
BEGIN
SELECT @In = @Number – 1
EXEC Fact @In, @Out OUTPUT - Same stored procedure has been called again(Recursively)
SELECT @RetVal = @Number * @Out
END
ELSE
BEGIN
SELECT @RetVal = 1
END
RETURN
GO

4. Quali sono le differenze tra le tabelle temporanee locali e globali?

  • Le tabelle temporanee locali sono visibili quando è presente una connessione e vengono eliminate quando la connessione viene chiusa.
CREATE TABLE #<tablename>
  • Le tabelle temporanee globali sono visibili a tutti gli utenti e vengono eliminate quando la connessione che le ha create viene chiusa.
CREATE TABLE ##<tablename>

5. Cos'è il vincolo CHECK?

È possibile applicare un vincolo CHECK a una colonna di una tabella per limitare i valori che possono essere inseriti in una colonna. Il vincolo di controllo serve a garantire l'integrità.


6. I server SQL possono essere collegati ad altri server?

Server SQL può essere connesso a qualsiasi database che abbia un provider OLE-DB per fornire un collegamento. Esempio: Oracle dispone di un provider OLE-DB che dispone di un collegamento per connettersi al gruppo di server SQL.


7. Cos'è la sottoquery e le sue proprietà?

Una sottoquery è una query che può essere nidificata all'interno di una query principale come le istruzioni Select, Update, Insert o Delete. Può essere utilizzato quando è consentita l'espressione. Le proprietà della sottoquery possono essere definite come

  • Una sottoquery non deve avere una clausola order by
  • Una sottoquery dovrebbe essere posizionata sul lato destro dell'operatore di confronto della query principale
  • Una sottoquery deve essere racchiusa tra parentesi perché deve essere eseguita prima della query principale
  • È possibile includere più di una sottoquery

8. Quali sono i tipi di sottoquery?

Esistono tre tipi di sottoquery:

  • Sottoquery a riga singola che restituisce solo una riga
  • Sottoquery a più righe che restituisce più righe
  • Sottoquery con più colonne che restituisce più colonne alla query principale. Con il risultato della sottoquery, verrà eseguita la query principale.

9. Cos'è l'agente SQL Server?

L'agente SQL Server svolge un ruolo fondamentale nelle attività quotidiane dell'amministratore del server SQL (DBA). Lo scopo dell'agente server è implementare facilmente le attività con il motore di pianificazione che consente l'esecuzione dei nostri lavori alla data e all'ora pianificate.


10. Cosa sono le attività pianificate in SQL Server?

Le attività o i processi pianificati vengono utilizzati per automatizzare i processi che possono essere eseguiti in un orario pianificato a intervalli regolari. Questa pianificazione delle attività aiuta a ridurre l'intervento umano durante la notte e l'alimentazione può essere effettuata in un momento particolare. L'utente può anche ordinare le attività in cui deve essere generato.


11. Cos'è COALESCE in SQL Server?

COALESCE viene utilizzato per restituire la prima espressione non nulla all'interno degli argomenti. Questa funzione viene utilizzata per restituire un valore diverso da null da più di una colonna negli argomenti.

Esempio -

Select COALESCE(empno, empname, salary) from employee;

12. Come possono essere gestite le eccezioni nella programmazione di SQL Server?

Le eccezioni vengono gestite utilizzando i costrutti TRY—-CATCH e vengono gestite scrivendo script all'interno del blocco TRY e la gestione degli errori nel blocco CATCH.


13. Qual è lo scopo della funzione FLOOR?

La funzione FLOOR viene utilizzata per arrotondare un valore non intero al numero intero precedente. Viene fornito un esempio

FLOOR(6.7)

Restituisce 6.


14. Possiamo controllare le serrature nel database? Se sì, come possiamo eseguire questo controllo della serratura?

Sì, possiamo controllare le serrature nel database. Può essere ottenuto utilizzando la procedura memorizzata incorporata denominata sp_lock.


15. A cosa serve la funzione SEGNO?

La funzione SEGNO viene utilizzata per determinare se il numero specificato è positivo, negativo e zero. Ciò restituirà +1,-1 o 0.

Esempio -

SIGN(-35) returns -1

16. Cos'è un trigger?

I trigger vengono utilizzati per eseguire un batch di codice SQL quando vengono eseguiti comandi di inserimento, aggiornamento o eliminazione su una tabella. I trigger vengono attivati ​​o eseguiti automaticamente quando i dati vengono modificati. Può essere eseguito automaticamente durante le operazioni di inserimento, eliminazione e aggiornamento.


17. Quali sono i tipi di Trigger?

Esistono quattro tipi di trigger e sono:

  • inserire
  • Elimina
  • Aggiornanento
  • Invece di

18. Cos'è una colonna IDENTITY nelle istruzioni di inserimento?

La colonna IDENTITY viene utilizzata nelle colonne della tabella per rendere tale colonna come numero incrementale automatico o chiave surrogata.


19. Che cos'è la copia di massa in SQL?

Bulkcopy è uno strumento utilizzato per copiare grandi quantità di dati dalle tabelle. Questo strumento viene utilizzato per caricare grandi quantità di dati in SQL Server.


20. Quale query verrà utilizzata per ottenere l'elenco dei trigger in un database?

Query per ottenere l'elenco dei trigger nel database-

Select * from sys.objects where type='tr'

21. Qual è la differenza tra UNION e UNION ALL?

  • UNION: per selezionare informazioni correlate da due tabelle viene utilizzato il comando UNION. È simile al comando UNISCI.
  • UNION All: il comando UNION ALL è uguale al comando UNION, tranne per il fatto che UNION ALL seleziona tutti i valori. Non rimuoverà le righe duplicate, ma recupererà tutte le righe da tutte le tabelle.

22. Come vengono rappresentate le tabelle temporanee globali e il loro ambito?

Le tabelle temporanee globali sono rappresentate con ## prima del nome della tabella. L'ambito sarà esterno alla sessione, mentre le tabelle temporanee locali si troveranno all'interno della sessione. L'ID sessione può essere trovato utilizzando @@SPID.


Domande e risposte all'intervista su SQL Server per esperti

23. Quali sono le differenze tra Stored Procedure e SQL dinamico?

La procedura memorizzata è un insieme di istruzioni archiviate in un formato compilato. Dynamic SQL è un insieme di istruzioni costruite dinamicamente in fase di esecuzione e non verranno archiviate in un database e verranno semplicemente eseguite durante l'esecuzione.


24. Cos'è la fascicolazione?

Le regole di confronto vengono definite per specificare l'ordinamento in una tabella. Esistono tre tipi di ordinamento:

  1. Che tiene conto del maiuscolo o minuscolo
  2. Senza distinzione tra maiuscole e minuscole
  3. Binario

25. Come possiamo contare il numero di record in una tabella?

Di seguito sono riportate le query che possono essere utilizzate per ottenere il conteggio dei record in una tabella:

Select * from <tablename> Select count(*) from <tablename> Select rows from sysindexes where id=OBJECT_ID(tablename) and indid<2

26. Qual è il comando utilizzato per ottenere la versione di SQL Server?

Select SERVERPROPERTY('productversion')

viene utilizzato per ottenere la versione di SQL Server.


27. Cos'è il comando UPDATE_STATISTICS?

Il comando UPDATE_STATISTICS viene utilizzato per aggiornare gli indici sulle tabelle quando si verifica una grande quantità di eliminazioni o modifiche o copie di massa negli indici.


28. A cosa serve l'istruzione SET NOCOUNT ON/OFF?

Per impostazione predefinita, NOCOUNT è impostato su OFF e restituisce il numero di record interessati ogni volta che il comando viene eseguito. Se l'utente non desidera visualizzare il numero di record interessati, può essere impostato esplicitamente su ON- (SET NOCOUNT ON).


29. Quale tabella del server SQL viene utilizzata per contenere gli script delle procedure memorizzate?

Sys.SQL_Modules è una tabella SQL Server utilizzata per archiviare lo script della procedura memorizzata. Il nome della procedura memorizzata viene salvato nella tabella denominata Sys.Procedures.


30. Cosa sono le Magic Table in SQL Server?

Durante le operazioni DML come Inserisci, Elimina e Aggiorna, SQL Server crea tabelle magiche per contenere i valori durante le operazioni DML. Queste tabelle magiche vengono utilizzate all'interno dei trigger per la transazione dei dati.


31. Qual è la differenza tra SUBSTR e CHARINDEX in SQL Server?

La funzione SUBSTR viene utilizzata per restituire una parte specifica di stringa in una determinata stringa. Ma la funzione CHARINDEX fornisce la posizione del carattere in una determinata stringa specificata.

SUBSTRING('Smiley',1,3)

Dà risultato come Smi

CHARINDEX('i', 'Smiley',1)

Dà 3 come risultato come appare in 3rd posizione della stringa


32. Come si crea un login?

Puoi usare il seguente comando per creare un login

CREATE LOGIN MyLogin WITH PASSWORD = '123';

33. Cos'è l'operatore ISNULL()?

La funzione ISNULL viene utilizzata per verificare se il valore fornito è NULL o non NULL nel server SQL. Questa funzione prevede anche di sostituire un valore con il NULL.


34. Qual è l'uso della clausola FOR?

La clausola FOR viene utilizzata principalmente per XML e opzioni del browser. Questa clausola viene utilizzata principalmente per visualizzare i risultati della query in formato XML o nel browser.


35. Quale sarà il numero massimo di indici per tabella?

Per SQL Server 2008 è possibile utilizzare 100 indici come numero massimo per tabella. 1 ClusterIn SQL Server è possibile utilizzare l'indice ed e 999 indici non cluster per tabella.

È possibile utilizzare 1000 indici come numero massimo per tabella. 1 ClusterIn SQL Server è possibile utilizzare l'indice ed e 999 indici non cluster per tabella.

1 ClusterIn SQL Server è possibile utilizzare l'indice ed e 999 indici non cluster per tabella.


36. Qual è la differenza tra COMMIT e ROLLBACK?

Ogni istruzione tra BEGIN e COMMIT diventa persistente nel database quando viene eseguito COMMIT. Ogni istruzione tra BEGIN e ROOLBACK viene ripristinata allo stato in cui è stato eseguito il ROLLBACK.


37. Qual è la differenza tra i tipi varchar e nvarchar?

Varchar e nvarchar sono uguali ma l'unica differenza è che nvarhcar può essere utilizzato per archiviare caratteri Unicode per più lingue e occupa anche più spazio rispetto a varchar.


38. A cosa serve @@SPID?

Un @@SPID restituisce l'ID di sessione del processo utente corrente.


39. Qual è il comando utilizzato per ricompilare la procedura memorizzata in fase di esecuzione?

La procedura memorizzata può essere eseguita con l'aiuto della parola chiave chiamata RECOMPILE.

Esempio

Exe <SPName>  WITH RECOMPILE

Oppure possiamo includere WITHRECOMPILE nella procedura memorizzata stessa.


40. Come eliminare le righe duplicate in SQL Server?

Le righe duplicate possono essere eliminate utilizzando la funzionalità CTE e ROW NUMER di SQL Server.


41. Dove sono archiviati i nomi utente e le password di SQL Server in SQL Server?

I nomi utente e le password sono archiviati in sys.server_principals e sys.sql_logins. Ma le password non vengono memorizzate nel testo normale.


42. Qual è la differenza tra GETDATE e SYSDATETIME?

Entrambi sono uguali ma GETDATE può fornire tempo fino ai millisecondi e SYSDATETIME può fornire precisione fino ai nanosecondi. SYSDATE TIME è più preciso di GETDATE.


43. Come è possibile copiare i dati da una tabella a un'altra tabella?

INSERT INTO SELECT

Questo comando viene utilizzato per inserire dati in una tabella già creata.

SELECT INTO

Questo comando viene utilizzato per creare una nuova tabella e la sua struttura e i dati possono essere copiati dalla tabella esistente.


44. Cos'è TABLESAMPLE?

TABLESAMPLE viene utilizzato per esprimeretraccampione t di righe selezionate casualmente, tutte necessarie per l'applicazione. Il campione di righe prelevate si basa sulla percentuale di righe.


45. Quale comando viene utilizzato per i messaggi di errore definiti dall'utente?

RAISEERROR è il comando utilizzato per generare e avviare l'elaborazione degli errori per una determinata sessione. I messaggi definiti dall'utente vengono archiviati nella tabella sys.messages.


46. ​​Cosa si intende per tipo di dati XML?

Il tipo di dati XML viene utilizzato per archiviare documenti XML nel file database di SQL Server. Vengono create colonne e variabili che memorizzano istanze XML nel database.


47. Cos'è il CDC?

CDC è abbreviato in Change Data Capture e viene utilizzato per acquisire i dati che sono stati modificati di recente. Questa funzionalità è presente in SQL Server 2008.


48. Cos'è l'iniezione SQL?

L'SQL injection è un attacco da parte di utenti malintenzionati in cui il codice dannoso può essere inserito in stringhe che possono essere passate a un'istanza del server SQL per l'analisi e l'esecuzione. Tutte le istruzioni devono verificare la presenza di vulnerabilità poiché esegue tutte le query sintatticamente valide che riceve.

Anche i parametri possono essere manipolati da aggressori qualificati ed esperti.


49. Quali sono i metodi utilizzati per proteggersi dagli attacchi SQL injection?

Di seguito sono riportati i metodi utilizzati per proteggersi dagli attacchi di iniezione SQL:

  • Utilizzare i parametri per le procedure memorizzate
  • Filtraggio dei parametri di input
  • Utilizza la raccolta di parametri con SQL dinamico
  • Nella clausola simile, i caratteri di escape dell'utente

50. Cos'è l'indice filtrato?

L'indice filtrato viene utilizzato per filtrare alcune porzioni di righe in una tabella per migliorare le prestazioni delle query, la manutenzione dell'indice e ridurre i costi di archiviazione dell'indice. Quando l'indice viene creato con la clausola WHERE, viene chiamato indice filtrato.

Queste domande del colloquio ti aiuteranno anche nel tuo viva(orale)

Riassumi questo post con: