Scarica il pdf
1. Quali sono le due modalità di autenticazione in SQL Server?
Esistono due modalità di autenticazione:
- Modalità Windows
- Modalita `mista
Le modalità possono essere modificate selezionando il menu strumenti delle proprietà di configurazione di SQL Server e scegliendo la pagina di sicurezza.
2. Che 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 ogni evento di un file o di una tabella per l'analisi.
3. Che cos'è la stored procedure ricorsiva?
SQL Server supporta la stored procedure ricorsiva che chiama da sola. La stored procedure ricorsiva può essere definita come un metodo di risoluzione dei problemi in cui la soluzione è arrivata ripetutamente. Può annidare fino a 32 livelli.
CREATE PROCEDURE [dbo].[Fact](@Number Integer,@RetVal Integer OUTPUT)ASDECLARE @In IntegerDECLARE @Out IntegerIF @Number != 1BEGINSELECT @In = @Number - 1EXEC Fact @In, @Out OUTPUT - Same stored procedure has been called again(Recursively)SELECT @RetVal = @Number * @OutENDELSEBEGINSELECT @RetVal = 1ENDRETURNGO
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 #
- Le tabelle temporanee globali sono visibili a tutti gli utenti e vengono eliminate quando viene chiusa la connessione che le ha create.
CREATE TABLE ##
5. Cos'è il vincolo CHECK?
È possibile applicare un vincolo CHECK a una colonna in una tabella per limitare i valori che possono essere inseriti in una colonna. Il controllo del vincolo serve a rafforzare l'integrità.
6. I server SQL possono essere collegati ad altri server?
Il server SQL può essere connesso a qualsiasi database che dispone di 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 Seleziona, Aggiorna, Inserisci o Elimina. Può essere utilizzato quando è consentita l'espressione. Le proprietà della sottoquery possono essere definite come
- Una sottoquery non dovrebbe 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 query secondarie:
- Sottoquery a riga singola che restituisce solo una riga
- Sottoquery su più righe che restituisce più righe
- Sottoquery a più colonne che restituisce più colonne alla query principale. Con quel risultato della sottoquery, verrà eseguita la query principale.
9. Cos'è l'agente del server SQL?
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 ai nostri lavori di essere eseguiti alla data e all'ora pianificate.
10. Cosa sono le attività pianificate in SQL Server?
Le attività oi 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 eseguita in un momento particolare. L'utente può anche ordinare le attività in cui deve essere generato.
11. Che 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 non nullo 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 gestendo gli 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 minimo precedente. Viene fornito un esempio
FLOOR(6.7)
Restituisce 6.
14. Possiamo controllare i blocchi nel database? In tal caso, come possiamo eseguire questo controllo del blocco?
Sì, possiamo controllare i blocchi nel database. Può essere ottenuto utilizzando la stored procedure incorporata chiamata sp_lock.
15. Qual è l'uso della funzione SIGN?
La funzione SEGNO viene utilizzata per determinare se il numero specificato è Positivo, Negativo e Zero. Questo 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 i comandi di inserimento, aggiornamento o eliminazione vengono eseguiti su una tabella. I trigger vengono attivati o eseguiti automaticamente quando i dati vengono modificati. Può essere eseguito automaticamente durante le operazioni di inserimento, cancellazione e aggiornamento.
17. Quali sono i tipi di trigger?
Esistono quattro tipi di trigger e sono:
- Inserire
- Elimina
- Aggiornare
- Invece di
18. Che cos'è una colonna IDENTITY nelle istruzioni insert?
La colonna IDENTITY viene utilizzata nelle colonne della tabella per rendere tale colonna un numero incrementale automatico o una chiave surrogata.
19. Cos'è Bulkcopy in SQL?
Bulkcopy è uno strumento utilizzato per copiare grandi quantità di dati dalle tabelle. Questo strumento viene utilizzato per caricare una grande quantità di dati in SQL Server.
20. Quale sarà la query utilizzata per ottenere l'elenco dei trigger in un database?
Query per ottenere l'elenco dei trigger nel database-
Select * from sys.objects where
21. Qual è la differenza tra UNION e UNION ALL?
- UNION: per selezionare le informazioni correlate da due tabelle viene utilizzato il comando UNION. È simile al comando JOIN.
- 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 sono rappresentate le tabelle temporanee globali e il loro ambito?
Le tabelle temporanee globali sono rappresentate con ## prima del nome della tabella. L'ambito sarà l'esterno della sessione mentre le tabelle temporanee locali sono all'interno della sessione. L'ID sessione può essere trovato utilizzando @@ SPID.
23. Quali sono le differenze tra la stored procedure e l'SQL dinamico?
La stored procedure è un insieme di istruzioni memorizzate in una forma compilata. Dynamic SQL è un insieme di istruzioni costruite dinamicamente in fase di esecuzione e non verrà memorizzato in un database e verrà semplicemente eseguito durante il runtime.
24. Che cos'è la collazione?
Le regole di confronto vengono definite per specificare l'ordinamento in una tabella. Esistono tre tipi di ordinamento:
- Che tiene conto del maiuscolo o minuscolo
- Case Insensitive
- Binario
25. Come possiamo ottenere il conteggio del 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 * fromSelect count(*) from 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 è presente una grande quantità di eliminazioni o modifiche o si è verificata una copia di massa negli indici.
28. Qual è l'uso dell'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 della procedura memorizzata?
Sys.SQL_Modules è una tabella di SQL Server utilizzata per archiviare lo script della stored procedure. Il nome della stored procedure viene salvato nella tabella denominata Sys.Procedures.
30. Cosa sono le Magic Tables 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 porzione specifica di stringa in una determinata stringa. Tuttavia, la funzione CHARINDEX fornisce la posizione del carattere in una determinata stringa specificata.
SUBSTRING('Smiley',1,3)
Dato risultato come Smi
CHARINDEX('i', 'Smiley',1)
Fornisce 3 come risultato quando appare nella terza posizione della stringa
32. Come puoi creare un login?
È possibile utilizzare il seguente comando per creare un account di accesso
CREATE LOGIN MyLogin WITH PASSWORD = '123';
33. Che cos'è l'operatore ISNULL ()?
La funzione ISNULL viene utilizzata per verificare se il valore fornito è NULL o meno NULL nel server sql. Questa funzione prevede anche di sostituire un valore con NULL.
34. A cosa serve la clausola FOR?
La clausola FOR viene utilizzata principalmente per XML e le 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 100 Index può essere utilizzato come numero massimo per tabella. 1 Indice cluster e 999 indici non cluster per tabella possono essere utilizzati in SQL Server.
L'indice 1000 può essere utilizzato come numero massimo per tabella. 1 Indice cluster e 999 indici non cluster per tabella possono essere utilizzati in SQL Server.
1 Indice cluster e 999 indici non cluster per tabella possono essere utilizzati in SQL Server.
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 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 memorizzare caratteri Unicode per più lingue e richiede 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 stored procedure in fase di esecuzione?
La stored procedure può essere eseguita con l'aiuto della parola chiave chiamata RECOMPILE.
Esempio
ExeWITH RECOMPILE
Oppure possiamo includere WITHRECOMPILE nella stored procedure stessa.
40. Come eliminare le righe duplicate in SQL Server?
Le righe duplicate possono essere eliminate utilizzando CTE e la funzione NUMERO DI RIGA di SQL Server.
41. Dove vengono archiviati i nomi utente e le password di SQL Server in SQL Server?
I nomi utente e le password vengono memorizzati 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ò dare tempo fino a millisecondi e SYSDATETIME può dare precisione fino a nanosecondi. SYSDATE TIME è più preciso di GETDATE.
43. Come possono essere copiati i dati da una tabella a un'altra tabella?
INSERISCI IN SELEZIONA
Questo comando viene utilizzato per inserire dati in una tabella già creata.
SELEZIONA IN
Questo comando viene utilizzato per creare una nuova tabella e la sua struttura e i suoi dati possono essere copiati dalla tabella esistente.
44. Cos'è TABLESAMPLE?
TABLESAMPLE viene utilizzato per estrarre il campione di righe in modo casuale che sono tutte necessarie per l'applicazione. Le righe campione prese si basano 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. Questi messaggi definiti dall'utente vengono archiviati nella tabella sys.messages.
46. Cosa si intende per XML Datatype?
Il tipo di dati XML viene utilizzato per archiviare i documenti XML nel database di SQL Server. Le colonne e le variabili vengono create e archiviate le istanze XML nel database.
47. Cos'è il CDC?
CDC è abbreviato in Change Data Capture che viene utilizzato per acquisire i dati che sono stati modificati di recente. Questa funzionalità è presente in SQL Server 2008.
48. Cos'è l'SQL injection?
SQL injection è un attacco da parte di utenti malintenzionati in cui è possibile inserire codice dannoso in stringhe che possono essere passate a un'istanza di SQL Server per l'analisi e l'esecuzione. Tutte le istruzioni devono essere verificate per le vulnerabilità poiché esegue tutte le query sintatticamente valide che riceve.
Anche i parametri possono essere manipolati da attaccanti esperti ed esperti.
49. Quali sono i metodi utilizzati per proteggersi dagli attacchi SQL injection?
Di seguito sono riportati i metodi utilizzati per proteggere dagli attacchi SQL injection:
- Usa parametri per stored procedure
- Filtraggio dei parametri di input
- Usa la raccolta di parametri con Dynamic SQL
- Nella clausola like, i caratteri di escape dell'utente
50. Che 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