Télécharger le PDF
1. Quels sont les deux modes d'authentification dans SQL Server?
Il existe deux modes d'authentification -
- Mode Windows
- 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é.
2. Qu'est-ce que SQL Profiler?
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'une table à des fins d'analyse.
3. Qu'est-ce qu'une procédure stockée récursive?
SQL Server prend en charge la procédure stockée récursive qui s'appelle par elle-même. 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 est arrivée de manière répétitive. Il peut imbriquer jusqu'à 32 niveaux.
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. 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 #
- 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 ##
5. Qu'est-ce que la contrainte CHECK?
Une contrainte CHECK peut être appliquée à une colonne dans une table pour limiter les valeurs qui peuvent être placées dans une colonne. La contrainte de vérification consiste à appliquer l'intégrité.
6. Les serveurs SQL peuvent-ils être liés à d'autres serveurs?
Le serveur SQL peut être connecté à n'importe quelle base de données qui a un fournisseur OLE-DB pour donner un lien. Exemple: Oracle a 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 telle que des 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 commande par clause
- Une sous-requête doit être placée dans la partie 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ête?
Il existe trois types de sous-requête -
- Sous-requête à une seule ligne qui ne renvoie qu'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 de serveur SQL?
L'agent SQL Server joue un rôle essentiel dans les tâches quotidiennes de l'administrateur de serveur SQL (DBA). Le but de l'agent serveur est de mettre en œuvre les tâches facilement avec le moteur de planification qui permet à nos travaux de s'exécuter à la date et à l'heure prévues.
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 les interventions humaines pendant la nuit et l'alimentation peut être effectuée à un moment donné. 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 en utilisant les constructions TRY ---- CATCH et elles 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. À quoi sert la fonction FLOOR?
La fonction FLOOR est utilisée pour arrondir une valeur non entière au plus petit entier précédent. Un exemple est donné
FLOOR(6.7)
Renvoie 6.
14. Pouvons-nous vérifier les verrous dans la base de données? Si tel est le cas, 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 et ils sont:
- Insérer
- Effacer
- Mettre à 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 de table 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 sera la requête 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
21. Quelle est la différence entre UNION et UNION ALL?
- UNION: Pour sélectionner des informations liées à partir de deux tables, la commande UNION est utilisée. Elle 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-elles 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 l'extérieur de la session tandis que les tables temporaires locales sont à l'intérieur de la session. L'ID de session peut être trouvé en utilisant @@ SPID.
23. Quelles sont les différences entre la procédure stockée et le SQL dynamique?
La procédure stockée est un ensemble d'instructions stockées sous une forme compilée. Dynamic SQL est un ensemble d'instructions qui sont construites dynamiquement au moment de l'exécution et qui ne seront pas stockées dans une base de données et s'exécutent 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 -
- Sensible aux majuscules et minuscules
- Insensible à la casse
- Binaire
25. Comment pouvons-nous obtenir le décompte du 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 * fromSelect count(*) from 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'il y a un grand nombre de suppressions ou de modifications ou de copie en bloc 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 défini explicitement sur ON- (SET NOCOUNT ON).
29. Quelle table de 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 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?
Pendant les opérations DML telles que l'insertion, la suppression et la mise à jour, SQL Server crée des tables magiques pour contenir les valeurs pendant les opérations DML. Ces tables magiques sont utilisées à l'intérieur des 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 portion spécifique de chaîne dans une chaîne donnée. Mais, la fonction CHARINDEX donne la position des caractères 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 lorsque j'apparais en 3 ème position de la chaîne
32. Comment pouvez-vous créer une connexion?
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 la valeur NULL.
34. À quoi sert la clause FOR?
La clause FOR est principalement utilisée pour les options XML et du navigateur. Cette clause est principalement utilisée pour afficher les résultats de la requête au format XML ou dans un navigateur.
35. Quel sera le nombre maximum d'index par table?
Pour SQL Server 2008, 100 Index peut être utilisé comme nombre maximum par table. 1 index en cluster et 999 index non en cluster par table peuvent être utilisés dans SQL Server.
L'index 1000 peut être utilisé comme nombre maximum par table. 1 index en cluster et 999 index non en cluster par table peuvent être utilisés dans SQL Server.
1 index en cluster et 999 index non en cluster 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 lorsque 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 qu'il prend également plus d'espace 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é RECOMPILE.
Exemple
ExeWITH RECOMPILE
Ou nous pouvons inclure WITHRECOMPILE dans la procédure stockée elle-même.
40. Comment supprimer des lignes dupliquées dans SQL Server?
Les lignes en double peuvent être supprimées à l'aide de la fonctionnalité CTE et ROW NUMER de SQL Server.
41. Où sont stockés les noms d'utilisateur et les mots de passe SQL Server 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 dans du 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'à nanosecondes. SYSDATE TIME est plus précis que GETDATE.
43. Comment les données peuvent-elles être copiées d'une table à une autre?
INSÉRER DANS SELECT
Cette commande permet d'insérer des données dans une table déjà créée.
SÉLECTIONNEZ DANS
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 un échantillon de lignes au hasard 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 la 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 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 d'utilisateurs malveillants dans laquelle du code malveillant peut être inséré dans des chaînes qui peuvent être transmises à une instance de serveur SQL pour analyse et exécution. Toutes les instructions doivent vérifier les vulnérabilités pendant qu'il exécute toutes les requêtes syntaxiquement valides qu'il reçoit.
Même les paramètres peuvent être manipulés par les 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 les 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 like, caractères d'échappement de l'utilisateur
50. Qu'est-ce que l'indice filtré?
L'index filtré est utilisé pour filtrer une partie des lignes d'une table pour améliorer les performances des requêtes, la maintenance des index et réduire les coûts de stockage d'index. Lorsque l'index est créé avec la clause WHERE, il est appelé Index filtré