Dưới đây là một số phương pháp T-SQL bạn có thể sử dụng để trả về tên máy chủ trong SQL Server.
@@ SERVERNAME
@@SERVERNAME
chức năng cấu hình được thiết kế đặc biệt để trả về tên của máy chủ cục bộ đang chạy SQL Server.
Để lấy tên máy chủ, bạn chỉ cần chọn nó bằng cách sử dụng SELECT
tuyên bố.
SELECT @@SERVERNAME;
Kết quả trên hệ thống của tôi:
mssql2019_1
Điều này cho tôi biết rằng tên máy chủ của tôi là mssql2019_1
.
SERVERPROPERTY (ServerName)
SERVERPROPERTY()
Hàm siêu dữ liệu cũng có thể được sử dụng để trả về tên máy chủ, cũng như nhiều thuộc tính khác.
Để trả về tên máy chủ, bạn cần chuyển ServerName
như một đối số.
SELECT SERVERPROPERTY('ServerName');
Kết quả:
mssql2019_1
Trong trường hợp của tôi, đó là cùng một đầu ra.
Sự khác biệt giữa hai chức năng này
Hai chức năng trên tạo ra cùng một đầu ra trên máy của tôi, nhưng bạn có thể thấy rằng chúng tạo ra đầu ra hơi khác trên máy của bạn.
Hai chức năng tương tự, nhưng hơi khác nhau. Đây là sự khác biệt:
-
@@SERVERNAME
cung cấp tên máy chủ cục bộ hiện được định cấu hình. -
ServerName
thuộc tính cung cấp máy chủ Windows và tên phiên bản cùng nhau tạo nên phiên bản máy chủ duy nhất.
Ví dụ:trên hệ thống Windows, nếu tên máy tính của bạn là Felix
và phiên bản SQL Server của bạn được gọi là sql1
, đang chạy SERVERPROPERTY('ServerName')
có thể trả về Felix\sql1
.
Tên Máy &Tên Phiên bản
SERVERPROPERTY()
cũng có thể được sử dụng để trả về tên máy cũng như tên phiên bản SQL Server.
Tuy nhiên, kết quả bạn nhận được sẽ phụ thuộc vào một số điều (được đề cập bên dưới).
Đây là những gì tôi nhận được trên máy Mac của mình đang chạy SQL Server cho Linux thông qua vùng chứa Docker.
SELECT
SERVERPROPERTY('MachineName') AS MachineName,
SERVERPROPERTY('InstanceName') AS InstanceName;
Kết quả:
+---------------+----------------+ | MachineName | InstanceName | |---------------+----------------| | mssql2019_1 | NULL | +---------------+----------------+
Đầu tiên, MachineName
thuộc tính trả về tên máy. Giải thích của Microsoft là nó trả về tên máy tính Windows mà phiên bản máy chủ đang chạy.
Microsoft cũng tuyên bố rằng “Đối với phiên bản nhóm, một phiên bản của SQL Server chạy trên máy chủ ảo trên Microsoft Cluster Service, nó trả về tên của máy chủ ảo”.
Theo như InstanceName
thuộc tính đi, nó trả về tên của phiên bản thành which
người dùng được kết nối.
Tuy nhiên, nó trả về NULL
nếu tên phiên bản là phiên bản mặc định, nếu đầu vào không hợp lệ hoặc lỗi.
Trong trường hợp của tôi, tên phiên bản là phiên bản mặc định và tôi nhận được NULL
.