В SQL Server можете да използвате APP_NAME()
функция, за да получите името на приложението за текущата сесия. Това предполага, че приложението задава това име.
Можете да използвате тази функция, за да правите разлика между различни приложения, като начин за извършване на различни действия за тези приложения.
Имайте предвид, че клиентът предоставя името на приложението и така резултатът, върнат от тази функция, просто отразява името, предоставено от клиента. Поради тази причина Microsoft съветва тази функция да не се използва за проверки на сигурността.
Синтаксис
Функцията не изисква никакви аргументи, така че синтаксисът й е така:
APP_NAME ( )
Пример 1 – Резултат в Azure Data Studio
Ето резултата, който получавам, когато използвам Azure Data Studio.
ИЗБЕРЕТЕ APP_NAME() КАТО резултат;
Резултат:
<пред>+--------------+| Резултат ||--------------|| azdata-Query |+--------------+Пример 2 – Резултат в mssql-cli
Ето резултата, който получавам, когато използвам интерфейса на командния ред mssql-cli.
ИЗБЕРЕТЕ APP_NAME() КАТО резултат;
Резултат:
+---------------------------------+| Резултат ||----------------------------------|| Core .Net SqlClient доставчик на данни |+-----------------------------------+
Пример 3 – Използване на APP_NAME() в условен израз
Ето пример за използване на APP_NAME()
в условно изявление, за да предостави различен формат на датата в зависимост от използваното приложение.
IF APP_NAME() ='azdata-Query' PRINT 'Приложение:' + APP_NAME() + char(10) + 'Дата:' + CONVERT ( varchar(100) , GETDATE(), 111);ELSE IF APP_NAME () ='Core .Net SqlClient Data Provider' PRINT 'Приложение:' + APP_NAME() + char(10) + 'Дата:' + CONVERT ( varchar(100) , GETDATE(), 103);
Резултат в Azure Data Studio:
Заявление:azdata-QueryDate:2019/12/06
Резултат в mssql-cli:
Приложение:Core .Net SqlClient Data ProviderДата:12.06.2019 г.