Top 50 des questions et réponses d'entretien sur SQL Server (2025)

Voici les questions et réponses d'entretien avec SQL Server pour les candidats les plus récents et les plus expérimentés pour obtenir l'emploi de leurs rêves.

Questions et réponses d'entretien sur SQL Server pour les débutants


1. Quels sont les deux modes d'authentification dans SQL Server ?

Il existe deux modes d'authentification -

  • Windows Mode
  • Mode mixte

Les modes peuvent être modifiés en sélectionnant le menu Outils des propriétés de configuration de SQL Server et en choisissant la page de sécurité.

👉 Téléchargement PDF gratuit : questions et réponses d'entretien avec SQL Server


2. Qu'est-ce que le profileur SQL ?

SQL Profiler est un outil qui permet à l'administrateur système de surveiller les événements sur le serveur SQL. Ceci est principalement utilisé pour capturer et enregistrer des données sur chaque événement d'un fichier ou d'un tableau à des fins d'analyse.


3. Qu'est-ce qu'une procédure stockée récursive ?

SQL Server prend en charge les procédures stockées récursives qui s'appellent seules. Une procédure stockée récursive peut être définie comme une méthode de résolution de problèmes dans laquelle la solution arrive de manière répétitive. Il peut emboîter jusqu'à 32 niveaux.

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. Quelles sont les différences entre les tables temporaires locales et globales ?

  • Les tables temporaires locales sont visibles lorsqu'il existe une connexion et sont supprimées lorsque la connexion est fermée.
CREATE TABLE #<tablename>
  • Les tables temporaires globales sont visibles par tous les utilisateurs et sont supprimées lorsque la connexion qui les a créées est fermée.
CREATE TABLE ##<tablename>

5. Qu'est-ce que la contrainte CHECK ?

Une contrainte CHECK peut être appliquée à une colonne d'un tableau pour limiter les valeurs pouvant être placées dans une colonne. La contrainte de vérification consiste à faire respecter l’intégrité.


6. Les serveurs SQL peuvent-ils être liés à d'autres serveurs ?

Serveur SQL peut être connecté à n’importe quelle base de données disposant d’un fournisseur OLE-DB pour donner un lien. Exemple: Oracle dispose d'un fournisseur OLE-DB qui a un lien pour se connecter au groupe de serveurs SQL.


7. Qu'est-ce qu'une sous-requête et ses propriétés ?

Une sous-requête est une requête qui peut être imbriquée dans une requête principale comme les instructions Select, Update, Insert ou Delete. Cela peut être utilisé lorsque l’expression est autorisée. Les propriétés de la sous-requête peuvent être définies comme

  • Une sous-requête ne doit pas avoir de clause order by
  • Une sous-requête doit être placée à droite de l’opérateur de comparaison de la requête principale
  • Une sous-requête doit être placée entre parenthèses car elle doit être exécutée avant la requête principale
  • Plusieurs sous-requêtes peuvent être incluses

8. Quels sont les types de sous-requêtes ?

Il existe trois types de sous-requête :

  • Sous-requête à une seule ligne qui renvoie une seule ligne
  • Sous-requête à plusieurs lignes qui renvoie plusieurs lignes
  • Sous-requête à plusieurs colonnes qui renvoie plusieurs colonnes à la requête principale. Avec ce résultat de sous-requête, la requête principale sera exécutée.

9. Qu'est-ce que l'agent serveur SQL ?

L'agent SQL Server joue un rôle essentiel dans les tâches quotidiennes de l'administrateur du serveur SQL (DBA). Le but de l'agent serveur est d'implémenter facilement les tâches avec le moteur de planification qui permet à nos tâches de s'exécuter à la date et à l'heure planifiées.


10. Que sont les tâches planifiées dans SQL Server ?

Les tâches ou travaux planifiés sont utilisés pour automatiser les processus qui peuvent être exécutés à une heure planifiée à intervalle régulier. Cette planification des tâches permet de réduire l'intervention humaine pendant la nuit et l'alimentation peut être effectuée à une heure précise. L'utilisateur peut également ordonner les tâches dans lesquelles il doit être généré.


11. Qu'est-ce que COALESCE dans SQL Server ?

COALESCE est utilisé pour renvoyer la première expression non nulle dans les arguments. Cette fonction est utilisée pour renvoyer une valeur non nulle à partir de plusieurs colonnes dans les arguments.

Exemple -

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

12. Comment les exceptions peuvent-elles être gérées dans la programmation SQL Server ?

Les exceptions sont gérées à l'aide des constructions TRY—-CATCH et sont gérées en écrivant des scripts à l'intérieur du bloc TRY et en gérant les erreurs dans le bloc CATCH.


13. Quel est le but de la fonction FLOOR ?

La fonction FLOOR est utilisée pour arrondir une valeur non entière au plus petit nombre entier précédent. Un exemple est donné

FLOOR(6.7)

Retours 6.


14. Pouvons-nous vérifier les verrous dans la base de données ? Si oui, comment pouvons-nous effectuer cette vérification de verrouillage ?

Oui, nous pouvons vérifier les verrous dans la base de données. Cela peut être réalisé en utilisant une procédure stockée intégrée appelée sp_lock.


15. À quoi sert la fonction SIGN ?

La fonction SIGN est utilisée pour déterminer si le nombre spécifié est positif, négatif et zéro. Cela renverra +1,-1 ou 0.

Exemple -

SIGN(-35) returns -1

16. Qu'est-ce qu'un déclencheur ?

Les déclencheurs sont utilisés pour exécuter un lot de code SQL lorsque des commandes d'insertion, de mise à jour ou de suppression sont exécutées sur une table. Les déclencheurs sont automatiquement déclenchés ou exécutés lorsque les données sont modifiées. Il peut être exécuté automatiquement lors des opérations d'insertion, de suppression et de mise à jour.


17. Quels sont les types de déclencheurs ?

Il existe quatre types de déclencheurs :

  • insérer
  • Supprimer
  • Mises à jour
  • Au lieu de

18. Qu'est-ce qu'une colonne IDENTITY dans les instructions d'insertion ?

La colonne IDENTITY est utilisée dans les colonnes du tableau pour faire de cette colonne un numéro incrémentiel automatique ou une clé de substitution.


19. Qu'est-ce que Bulkcopy dans SQL ?

Bulkcopy est un outil utilisé pour copier une grande quantité de données à partir de tables. Cet outil est utilisé pour charger une grande quantité de données dans SQL Server.


20. Quelle requête sera utilisée pour obtenir la liste des déclencheurs dans une base de données ?

Requête pour obtenir la liste des déclencheurs dans la base de données-

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

21. Quelle est la différence entre UNION et UNION ALL?

  • UNION : pour sélectionner les informations associées dans deux tables, la commande UNION est utilisée. C'est similaire à la commande JOIN.
  • UNION All : La commande UNION ALL est égale à la commande UNION, sauf que UNION ALL sélectionne toutes les valeurs. Il ne supprimera pas les lignes en double, mais récupérera toutes les lignes de toutes les tables.

22. Comment les tables temporaires globales sont représentées et leur portée ?

Les tables temporaires globales sont représentées par ## avant le nom de la table. La portée sera en dehors de la session alors que les tables temporaires locales se trouvent à l'intérieur de la session. L'ID de session peut être trouvé à l'aide de @@SPID.


Questions et réponses d'entretien sur SQL Server pour les expérimentés

23. Quelles sont les différences entre la procédure stockée et le SQL dynamique ?

Une procédure stockée est un ensemble d'instructions stockées sous une forme compilée. Dynamic SQL est un ensemble d'instructions construites dynamiquement au moment de l'exécution. Il ne sera pas stocké dans une base de données et s'exécutera simplement pendant l'exécution.


24. Qu'est-ce que le classement ?

Le classement est défini pour spécifier l'ordre de tri dans une table. Il existe trois types d'ordre de tri :

  1. Sensible aux majuscules et minuscules
  2. Insensible à la casse
  3. binaire

25. Comment pouvons-nous compter le nombre d’enregistrements dans une table ?

Voici les requêtes qui peuvent être utilisées pour obtenir le nombre d'enregistrements dans une table :

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

26. Quelle est la commande utilisée pour obtenir la version de SQL Server ?

Select SERVERPROPERTY('productversion')

est utilisé pour obtenir la version de SQL Server.


27. Qu'est-ce que la commande UPDATE_STATISTICS ?

La commande UPDATE_STATISTICS est utilisée pour mettre à jour les index sur les tables lorsqu'un grand nombre de suppressions ou de modifications ou de copies en masse ont eu lieu dans les index.


28. À quoi sert l'instruction SET NOCOUNT ON/OFF ?

Par défaut, NOCOUNT est défini sur OFF et renvoie le nombre d'enregistrements affectés chaque fois que la commande est exécutée. Si l'utilisateur ne souhaite pas afficher le nombre d'enregistrements concernés, il peut être explicitement défini sur ON- (SET NOCOUNT ON).


29. Quelle table du serveur SQL est utilisée pour contenir les scripts de procédure stockée ?

Sys.SQL_Modules est une table SQL Server utilisée pour stocker le script de la procédure stockée. Le nom de la procédure stockée est enregistré dans la table appelée Sys.Procedures.


30. Que sont les tables magiques dans SQL Server ?

Lors des opérations DML telles que Insérer, Supprimer et Mettre à jour, SQL Server crée des tables magiques pour contenir les valeurs pendant les opérations DML. Ces tables magiques sont utilisées dans les déclencheurs de transaction de données.


31. Quelle est la différence entre SUBSTR et CHARINDEX dans SQL Server ?

La fonction SUBSTR est utilisée pour renvoyer une partie spécifique d'une chaîne dans une chaîne donnée. Mais la fonction CHARINDEX donne la position du caractère dans une chaîne spécifiée donnée.

SUBSTRING('Smiley',1,3)

Donne le résultat comme Smi

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

Donne 3 comme résultat tel que I apparaît dans 3rd position de la corde


32. Comment créer un identifiant ?

Vous pouvez utiliser la commande suivante pour créer une connexion

CREATE LOGIN MyLogin WITH PASSWORD = '123';

33. Qu'est-ce que l'opérateur ISNULL() ?

La fonction ISNULL est utilisée pour vérifier si la valeur donnée est NULL ou non NULL dans le serveur SQL. Cette fonction permet également de remplacer une valeur par le NULL.


34. À quoi sert la clause FOR ?

La clause FOR est principalement utilisée pour XML et les options du navigateur. Cette clause est principalement utilisée pour afficher les résultats de la requête au format XML ou dans le navigateur.


35. Quel sera le nombre maximum d’index par table ?

Pour SQL Server 2008, 100 index peuvent être utilisés comme nombre maximum par table. 1 ClusterL'index ed et 999 index non clusterisés par table peuvent être utilisés dans SQL Server.

1000 Index peuvent être utilisés comme nombre maximum par table. 1 ClusterL'index ed et 999 index non clusterisés par table peuvent être utilisés dans SQL Server.

1 ClusterL'index ed et 999 index non clusterisés par table peuvent être utilisés dans SQL Server.


36. Quelle est la différence entre COMMIT et ROLLBACK ?

Chaque instruction entre BEGIN et COMMIT devient persistante dans la base de données lorsque COMMIT est exécuté. Chaque instruction entre BEGIN et ROOLBACK revient à l'état dans lequel le ROLLBACK a été exécuté.


37. Quelle est la différence entre les types varchar et nvarchar ?

Varchar et nvarchar sont identiques, mais la seule différence est que nvarhcar peut être utilisé pour stocker des caractères Unicode pour plusieurs langues et prend également plus de place par rapport à varchar.


38. À quoi sert @@SPID ?

Un @@SPID renvoie l'ID de session du processus utilisateur actuel.


39. Quelle est la commande utilisée pour recompiler la procédure stockée au moment de l'exécution ?

La procédure stockée peut être exécutée à l'aide du mot-clé appelé RECOMPILE.

Exemple

Exe <SPName>  WITH RECOMPILE

Ou nous pouvons inclure WITHRECOMPILE dans la procédure stockée elle-même.


40. Comment supprimer les lignes en double dans SQL Server ?

Les lignes en double peuvent être supprimées à l'aide des fonctionnalités CTE et ROW NUMER de SQL Server.


41. Où les noms d'utilisateur et les mots de passe SQL Server sont-ils stockés dans SQL Server ?

Les noms d'utilisateur et les mots de passe sont stockés dans sys.server_principals et sys.sql_logins. Mais les mots de passe ne sont pas stockés sous forme de texte normal.


42. Quelle est la différence entre GETDATE et SYSDATETIME ?

Les deux sont identiques mais GETDATE peut donner du temps jusqu'à quelques millisecondes et SYSDATETIME peut donner une précision jusqu'à quelques nanosecondes. SYSDATE TIME est plus précis que GETDATE.


43. Comment les données peuvent-elles être copiées d'une table à une autre ?

INSERT INTO SELECT

Cette commande permet d'insérer des données dans une table déjà créée.

SELECT INTO

Cette commande est utilisée pour créer une nouvelle table et sa structure et ses données peuvent être copiées à partir d'une table existante.


44. Qu'est-ce que TABLESAMPLE ?

TABLESAMPLE est utilisé pour extraire aléatoirement un échantillon de lignes qui sont toutes nécessaires à l'application. Les exemples de lignes prises sont basés sur le pourcentage de lignes.


45. Quelle commande est utilisée pour les messages d'erreur définis par l'utilisateur ?

RAISEERROR est la commande utilisée pour générer et lancer le traitement des erreurs pour une session donnée. Ces messages définis par l'utilisateur sont stockés dans la table sys.messages.


46. ​​Qu'entend-on par type de données XML ?

Le type de données XML est utilisé pour stocker des documents XML dans le base de données SQL Server. Des colonnes et des variables sont créées et stockent des instances XML dans la base de données.


47. Qu'est-ce que le CDC ?

CDC est abrégé en Change Data Capture, qui est utilisé pour capturer les données qui ont été modifiées récemment. Cette fonctionnalité est présente dans SQL Server 2008.


48. Qu'est-ce que l'injection SQL ?

L'injection SQL est une attaque menée par des utilisateurs malveillants dans laquelle du code malveillant peut être inséré dans des chaînes pouvant être transmises à une instance de serveur SQL pour analyse et exécution. Toutes les instructions doivent vérifier les vulnérabilités car elles exécutent toutes les requêtes syntaxiquement valides qu'elles reçoivent.

Même les paramètres peuvent être manipulés par des attaquants qualifiés et expérimentés.


49. Quelles sont les méthodes utilisées pour se protéger contre les attaques par injection SQL ?

Voici les méthodes utilisées pour se protéger contre les attaques par injection SQL :

  • Utiliser des paramètres pour les procédures stockées
  • Filtrage des paramètres d'entrée
  • Utiliser la collection de paramètres avec Dynamic SQL
  • Dans la clause similaire, les caractères d'échappement de l'utilisateur

50. Qu'est-ce que l'index filtré ?

L'index filtré est utilisé pour filtrer une partie des lignes d'une table afin d'améliorer les performances des requêtes, la maintenance de l'index et de réduire les coûts de stockage de l'index. Lorsque l'index est créé avec la clause WHERE, il est alors appelé index filtré.

Ces questions d'entretien vous aideront également dans votre soutenance