Trong SQL Server, sp_server_info
hệ thống lưu trữ thủ tục trả về một danh sách các tên thuộc tính và các giá trị phù hợp cho SQL Server, cổng cơ sở dữ liệu hoặc nguồn dữ liệu cơ bản. Nó trả về một tập hợp con thông tin do SQLGetInfo cung cấp trong ODBC.
Về cơ bản, nó cho phép bạn xem thông tin về SQL Server.
Cú pháp
Cú pháp như sau:
sp_server_info [[@attribute_id = ] 'attribute_id']
(Tùy chọn) @attribute_id
đối số cho phép bạn thu hẹp kết quả chỉ thành một thuộc tính cụ thể.
Ví dụ 1 - Trả lại tất cả các thuộc tính
Trong ví dụ này, tôi thực hiện thủ tục được lưu trữ mà không chuyển bất kỳ đối số nào.
EXEC sp_server_info;
Nó cũng có thể chạy như thế này:
sp_server_info;
Đây là kết quả trên phiên bản SQL Server 2019 của tôi:
+----------------+------------------------+---------------------------------------------------------------------+ | attribute_id | attribute_name | attribute_value | |----------------+------------------------+---------------------------------------------------------------------| | 1 | DBMS_NAME | Microsoft SQL Server | | 2 | DBMS_VER | Microsoft SQL Server 2019 - 15.0.1800.32 | | 10 | OWNER_TERM | owner | | 11 | TABLE_TERM | table | | 12 | MAX_OWNER_NAME_LENGTH | 128 | | 13 | TABLE_LENGTH | 128 | | 14 | MAX_QUAL_LENGTH | 128 | | 15 | COLUMN_LENGTH | 128 | | 16 | IDENTIFIER_CASE | MIXED | | 17 | TX_ISOLATION | 2 | | 18 | COLLATION_SEQ | charset=iso_1 sort_order=nocase_iso charset_num=1 sort_order_num=52 | | 19 | SAVEPOINT_SUPPORT | Y | | 20 | MULTI_RESULT_SETS | Y | | 22 | ACCESSIBLE_TABLES | Y | | 100 | USERID_LENGTH | 128 | | 101 | QUALIFIER_TERM | database | | 102 | NAMED_TRANSACTIONS | Y | | 103 | SPROC_AS_LANGUAGE | Y | | 104 | ACCESSIBLE_SPROC | Y | | 105 | MAX_INDEX_COLS | 16 | | 106 | RENAME_TABLE | Y | | 107 | RENAME_COLUMN | Y | | 108 | DROP_COLUMN | Y | | 109 | INCREASE_COLUMN_LENGTH | Y | | 110 | DDL_IN_TRANSACTION | Y | | 111 | DESCENDING_INDEXES | Y | | 112 | SP_RENAME | Y | | 113 | REMOTE_SPROC | Y | | 500 | SYS_SPROC_VERSION | 15.00.1800 | +----------------+------------------------+---------------------------------------------------------------------+
Ví dụ 2 - Chỉ định một thuộc tính
Nếu chỉ quan tâm đến một thuộc tính, bạn có thể chuyển ID của thuộc tính đó. Làm điều này dẫn đến chỉ hàng của thuộc tính đó được trả về.
EXEC sp_server_info 500;
Nó cũng có thể được thực hiện như thế này:
sp_server_info 500; sp_server_info @attribute_id = 500; EXEC sp_server_info @attribute_id = 500;
Kết quả:
+----------------+-------------------+-------------------+ | attribute_id | attribute_name | attribute_value | |----------------+-------------------+-------------------| | 500 | SYS_SPROC_VERSION | 15.00.1800 | +----------------+-------------------+-------------------+
Trong ví dụ này, tôi trả về thuộc tính số 500, chỉ định phiên bản của các thủ tục được lưu trữ trong danh mục hiện được triển khai.
Ví dụ 3 - Chạy sp_server_info trên Máy chủ được Liên kết
Trong ví dụ này, tôi thực thi sp_server_info
thông qua một truy vấn chuyển qua trên một máy chủ được liên kết có tên là Homer.
SELECT * FROM OPENQUERY( Homer, 'EXEC sp_server_info 500' );
Kết quả:
+----------------+-------------------+-------------------+ | attribute_id | attribute_name | attribute_value | |----------------+-------------------+-------------------| | 500 | SYS_SPROC_VERSION | 14.00.3048 | +----------------+-------------------+-------------------+
Ví dụ 4 - Chỉ định Cột nào được Hiển thị
Một lợi ích phụ của OPENQUERY()
là bạn có thể giảm các cột được trả về bởi thủ tục được lưu trữ.
Ví dụ:
SELECT attribute_name, attribute_value FROM OPENQUERY( Homer, 'EXEC sp_server_info 500' );
Kết quả:
+-------------------+-------------------+ | attribute_name | attribute_value | |-------------------+-------------------| | SYS_SPROC_VERSION | 14.00.3048 | +-------------------+-------------------+