I SQL Server kan du använda APP_NAME()
funktion för att få applikationsnamnet för den aktuella sessionen. Detta förutsätter att applikationen anger det namnvärdet.
Du kan använda den här funktionen för att skilja mellan olika applikationer, som ett sätt att utföra olika åtgärder för dessa applikationer.
Observera att klienten anger applikationsnamnet, så resultatet som returneras av den här funktionen återspeglar helt enkelt vilket namn klienten ger. Av denna anledning rekommenderar Microsoft att den här funktionen inte ska användas för säkerhetskontroller.
Syntax
Funktionen kräver inga argument, så dess syntax ser ut så här:
APP_NAME ( )
Exempel 1 – Resultat i Azure Data Studio
Här är resultatet jag får när jag använder Azure Data Studio.
SELECT APP_NAME( ) AS Result;
Resultat:
+--------------+ | Result | |--------------| | azdata-Query | +--------------+
Exempel 2 – Resultat i mssql-cli
Här är resultatet jag får när jag använder kommandoradsgränssnittet mssql-cli.
SELECT APP_NAME( ) AS Result;
Resultat:
+-----------------------------------+ | Result | |-----------------------------------| | Core .Net SqlClient Data Provider | +-----------------------------------+
Exempel 3 – Använda APP_NAME() i ett villkorligt uttalande
Här är ett exempel på hur du använder APP_NAME()
i ett villkorligt uttalande för att ange ett annat datumformat beroende på vilket program som används.
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