Trong SQL Server, bạn có thể sử dụng APP_NAME()
chức năng lấy tên ứng dụng cho phiên hiện tại. Điều này giả định rằng ứng dụng đặt giá trị tên đó.
Bạn có thể sử dụng chức năng này để phân biệt giữa các ứng dụng khác nhau, như một cách để thực hiện các hành động khác nhau cho các ứng dụng đó.
Lưu ý rằng máy khách cung cấp tên ứng dụng và do đó kết quả trả về bởi hàm này chỉ phản ánh bất kỳ tên nào mà máy khách cung cấp. Vì lý do này, Microsoft khuyên rằng không nên sử dụng chức năng này để kiểm tra bảo mật.
Cú pháp
Hàm không yêu cầu bất kỳ đối số nào, vì vậy cú pháp của nó như sau:
APP_NAME ( )
Ví dụ 1 - Kết quả trong Azure Data Studio
Đây là kết quả tôi nhận được khi sử dụng Azure Data Studio.
SELECT APP_NAME( ) AS Result;
Kết quả:
+--------------+ | Result | |--------------| | azdata-Query | +--------------+
Ví dụ 2 - Kết quả là mssql-cli
Đây là kết quả tôi nhận được khi sử dụng giao diện dòng lệnh mssql-cli.
SELECT APP_NAME( ) AS Result;
Kết quả:
+-----------------------------------+ | Result | |-----------------------------------| | Core .Net SqlClient Data Provider | +-----------------------------------+
Ví dụ 3 - Sử dụng APP_NAME () trong câu lệnh có điều kiện
Dưới đây là một ví dụ về việc sử dụng APP_NAME()
trong một câu lệnh có điều kiện để cung cấp một định dạng ngày khác tùy thuộc vào ứng dụng đang được sử dụng.
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);
Kết quả trong Azure Data Studio:
Application: azdata-Query Date: 2019/12/06
Kết quả là mssql-cli:
Application: Core .Net SqlClient Data Provider Date: 06/12/2019