I SQL Server kan du bruge APP_NAME()
funktion for at få applikationsnavnet for den aktuelle session. Dette forudsætter, at applikationen angiver denne navneværdi.
Du kan bruge denne funktion til at skelne mellem forskellige applikationer, som en måde at udføre forskellige handlinger for disse applikationer.
Bemærk, at klienten angiver applikationsnavnet, og derfor afspejler resultatet, der returneres af denne funktion, blot det navn, klienten giver. Af denne grund anbefaler Microsoft, at denne funktion ikke bør bruges til sikkerhedstjek.
Syntaks
Funktionen kræver ingen argumenter, så dens syntaks lyder således:
APP_NAME ( )
Eksempel 1 – Resultat i Azure Data Studio
Her er resultatet, jeg får, når jeg bruger Azure Data Studio.
SELECT APP_NAME( ) AS Result;
Resultat:
+--------------+ | Result | |--------------| | azdata-Query | +--------------+
Eksempel 2 – Resultat i mssql-cli
Her er resultatet, jeg får, når jeg bruger mssql-cli kommandolinjegrænsefladen.
SELECT APP_NAME( ) AS Result;
Resultat:
+-----------------------------------+ | Result | |-----------------------------------| | Core .Net SqlClient Data Provider | +-----------------------------------+
Eksempel 3 – Brug af APP_NAME() i en betinget erklæring
Her er et eksempel på brug af APP_NAME()
i en betinget erklæring for at angive et andet datoformat afhængigt af den applikation, der bruges.
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);
Resultat i Azure Data Studio:
Application: azdata-Query Date: 2019/12/06
Resultat i mssql-cli:
Application: Core .Net SqlClient Data Provider Date: 06/12/2019