Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

2 cách trả lại tên máy chủ trong SQL Server (T-SQL)

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 .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thống kê gia tăng SQL Server 2014

  2. Làm cách nào để xóa khỏi nhiều bảng bằng INNER JOIN trong máy chủ SQL

  3. Kết nối SQL Server với HubSpot CRM

  4. CHÈN VÀO @TABLE EXEC @query với SQL Server 2000

  5. Xóa SCHEMABINDING khỏi một hàm do người dùng xác định trong SQL Server