Dans SQL Server, vous pouvez utiliser le APP_NAME()
fonction pour obtenir le nom de l'application pour la session en cours. Cela suppose que l'application définit cette valeur de nom.
Vous pouvez utiliser cette fonction pour faire la distinction entre différentes applications, afin d'effectuer différentes actions pour ces applications.
Notez que le client fournit le nom de l'application et que le résultat renvoyé par cette fonction reflète simplement le nom fourni par le client. Pour cette raison, Microsoft conseille de ne pas utiliser cette fonction pour les contrôles de sécurité.
Syntaxe
La fonction ne nécessite aucun argument, sa syntaxe est donc la suivante :
APP_NAME ( )
Exemple 1 – Résultat dans Azure Data Studio
Voici le résultat que j'obtiens en utilisant Azure Data Studio.
SELECT APP_NAME( ) AS Result;
Résultat :
+--------------+ | Result | |--------------| | azdata-Query | +--------------+
Exemple 2 – Résultat dans mssql-cli
Voici le résultat que j'obtiens en utilisant l'interface de ligne de commande mssql-cli.
SELECT APP_NAME( ) AS Result;
Résultat :
+-----------------------------------+ | Result | |-----------------------------------| | Core .Net SqlClient Data Provider | +-----------------------------------+
Exemple 3 - Utilisation de APP_NAME() dans une instruction conditionnelle
Voici un exemple d'utilisation de APP_NAME()
dans une instruction conditionnelle pour fournir un format de date différent selon l'application utilisée.
IF APP_NAME() = 'azdata-Query' PRINT 'Application: ' + APP_NAME() + char(10) + 'Date: ' + CONVERT ( varchar(100) , GETDATE(), 111); ELSE IF APP_NAME() = 'Core .Net SqlClient Data Provider' PRINT 'Application: ' + APP_NAME() + char(10) + 'Date: ' + CONVERT ( varchar(100) , GETDATE(), 103);
Résultat dans Azure Data Studio :
Application: azdata-Query Date: 2019/12/06
Résultat dans mssql-cli :
Application: Core .Net SqlClient Data Provider Date: 06/12/2019