sql >> Database >  >> RDS >> Sqlserver

Gebruik APP_NAME() om de toepassingsnaam van de huidige sessie in SQL Server op te halen

In SQL Server kunt u de APP_NAME() . gebruiken functie om de toepassingsnaam voor de huidige sessie op te halen. Dit veronderstelt dat de toepassing die naamwaarde instelt.

U kunt deze functie gebruiken om onderscheid te maken tussen verschillende toepassingen, als een manier om verschillende acties voor die toepassingen uit te voeren.

Houd er rekening mee dat de client de toepassingsnaam geeft, en het resultaat dat door deze functie wordt geretourneerd, weerspiegelt dus eenvoudig de naam die de client geeft. Om deze reden adviseert Microsoft deze functie niet te gebruiken voor veiligheidscontroles.

Syntaxis

De functie vereist geen argumenten, dus de syntaxis gaat als volgt:

APP_NAME  ( )

Voorbeeld 1 – Resultaat in Azure Data Studio

Dit is het resultaat dat ik krijg als ik Azure Data Studio gebruik.

SELECT APP_NAME( ) AS Result;

Resultaat:

+--------------+
| Result       |
|--------------|
| azdata-Query |
+--------------+

Voorbeeld 2 – Resultaat in mssql-cli

Dit is het resultaat dat ik krijg als ik de opdrachtregelinterface mssql-cli gebruik.

SELECT APP_NAME( ) AS Result;

Resultaat:

+-----------------------------------+
| Result                            |
|-----------------------------------|
| Core .Net SqlClient Data Provider |
+-----------------------------------+

Voorbeeld 3 – APP_NAME() gebruiken in een voorwaardelijke instructie

Hier is een voorbeeld van het gebruik van APP_NAME() in een voorwaardelijke verklaring om een ​​ander datumformaat te geven, afhankelijk van de gebruikte applicatie.

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);

Resultaat in Azure Data Studio:

Application: azdata-Query
Date: 2019/12/06

Resultaat in mssql-cli:

Application: Core .Net SqlClient Data Provider
Date: 06/12/2019

  1. psycopg2 voegt eigenlijk geen gegevens in

  2. String_agg voor SQL Server vóór 2017

  3. SQLiteDatabase-fout, nutteloos logboek

  4. Waarom geeft deze SQL-code fout 1066 (Niet unieke tabel/alias:'gebruiker')?