首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 擴展預存程序完整指南與常用範例

     編輯:關於SqlServer

前言

SQL Server 提供一系列擴展預存程序,讓開發人員能直接從 T-SQL 執行作業系統層級的操作,如檔案系統存取、網路資訊查詢、錯誤日誌閱讀等。本文整理常用擴展預存程序並提供實際呼叫範例,供開發與管理參考。

版本與環境資訊

取得 SQL Server 版本號

EXEC master..sp_msgetversion;

檔案與目錄操作

列出目錄樹結構

xp_dirtree 可遞迴列出目錄結構,參數依序為:目錄路徑、遞迴深度、是否顯示檔案。

-- 僅列出 C 槽根目錄第一層子目錄
EXEC master..xp_dirtree 'C:', 1;

-- 列出第一層並包含檔案
EXEC master..xp_dirtree 'C:', 1, 1;

檢查檔案是否存在

xp_fileexist 回傳旗標指出檔案是否存在。

DECLARE @flag INT;
EXEC master..xp_fileexist 'C:\abc.bak', @flag OUTPUT;

IF @flag = 1
    PRINT '檔案存在';
ELSE
    PRINT '檔案不存在';

列出固定磁碟機與可用空間

EXEC master..xp_fixeddrives;

回傳每個固定磁碟機的磁碟代號與可用空間 (MB)。

列出可用媒體裝置

EXEC master..xp_availablemedia;

回傳裝置名稱、可用位元組 (low/high)、媒體類型 (1=軟碟, 2=硬碟, 8=CD-ROM)。

列出指定目錄的下一層子目錄

EXEC master..xp_subdirs 'C:\WINNT';

伺服器設定與資源列舉

列出已安裝的 OLE DB 提供者

EXEC master..xp_enum_oledb_providers;

列出已安裝的字碼頁

EXEC master..xp_enumcodepages;

列出伺服器上設定的 DSN

EXEC master..xp_enumdsn;

列出 SQL Server 錯誤日誌清單

EXEC master..xp_enumerrorlogs;

列出 Windows 本地群組

EXEC master..xp_enumgroups;

網路與錯誤日誌

取得伺服器電腦名稱

EXEC master..xp_getnetname;

讀取目前錯誤日誌內容

EXEC master..xp_readerrorlog;

補充提示

在 master.dbo.sp_addlogin 內部使用了加密函數 pwdencrypt,有興趣的開發者可自行研究其運作機制(注意:此為內部非公開函數,生產環境不建議直接呼叫)。

安全性提醒

擴展預存程序運行於 SQL Server 進程空間內,權限極高。生產環境應嚴格控制 EXECUTE 權限,僅授予必要帳號,並定期稽核使用情形,防止資安風險。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved