SQL Server裡一些未公開的擴充預存程序

來源:互聯網
上載者:User

[轉帖] 部落格天地 www.inbaidu.com

SQL Server裡一些未公開的擴充預存程序

擴充預存程序(xp)是直接運行在SQL Server地址空間裡的動態連結程式庫,是通過使用SQL Server開放資料服務API(SQL Server Open Data Services API)開發的。我們可以像執行普通預存程序一樣,在“查詢分析器”裡運行擴充預存程序。擴充預存程序被用於SQL Server的擴充功能,我們可以直接利用SQL Server附帶的眾多擴充預存程序,也可以用C或C++等程式設計語言編寫我們自己的擴充預存程序。
在本文中,我將告訴大家一些未公開的有用的擴充預存程序。這些預存程序可以運行於SQL Server 7.0,當然SQL Server 2000也可以。

1、sp_MSgetversion
這個擴充預存程序可以用來獲得Microsoft SQL Server的目前的版本。要獲得SQL Server的版本,執行:
EXEC master..sp_MSgetversion
注意,還有一種方法獲得SQL Server的目前的版本(這種方法能得到更多資訊),那就是用下面的SELECT語句:
SELECT @@version

2、xp_dirtree
這個擴充預存程序可以用於為在擴充儲存(xp)中命名的檔案夾列出所有檔案夾。要列出C:\MSSQL7中的所有檔案夾,執行:
EXEC master..xp_dirtree 'C:\MSSQL7'

3、xp_enum_oledb_providers
這個擴充預存程序用於列出所有可用的OLE DB提供者(OLE DB providers)。它返回提供者的名稱、解析名稱(Parse Name)和提供者的描述。要獲得你的SQL Server的所有OLE DB提供者,執行:
EXEC master..xp_enum_oledb_providers

4、xp_enumcodepages
這個擴充預存程序可以用來列出所有你的SQL Server的字碼頁(code pages)、字元集和它們的描述。要查看這些資訊,執行:
EXEC master..xp_enumcodepages

5、xp_enumdsn
這個擴充預存程序系統所有的DSN和它們的描述。要查看系統DSN,執行:
EXEC master..xp_enumdsn

6、xp_enumerrorlogs
這個擴充預存程序返回所有錯誤記錄檔的列表和它們的最後更改日期。要獲得錯誤記錄檔列表,執行:
EXEC master..xp_enumerrorlogs

7、xp_enumgroups
這個擴充預存程序返回Windows NT組及其描述的列表。要獲得Windows NT組的列表,運行:
EXEC master..xp_enumgroups

8、xp_fileexist
我們可以用這個擴充預存程序來確定一個特定的檔案是否在磁碟上存在。用法:
EXECUTE xp_fileexist filename [, file_exists INT OUTPUT]
比如要檢查C:盤是否存在boot.ini檔案,執行:
EXEC master..xp_fileexist 'c:\boot.ini'

9、xp_fixeddrives
這是一個非常有用的擴充預存程序,他返回所有硬碟和它們的空閑空間有多少MB的列表。要查看磁碟機列表,執行:
EXEC master..xp_fixeddrives

10、xp_getnetname
這個擴充預存程序返回你串連的SQL Server的WINS名。查看這個名稱,執行:
EXEC master..xp_getnetname

11、xp_readerrorlog
這個擴充預存程序返回錯誤記錄檔的內容。我們可以在SQL Server 7.0的預設目錄C:\MSSQL7\Log裡找到錯誤記錄檔。要查看錯誤記錄檔的話,執行:
EXEC master..xp_readerrorlog

12、xp_regdeletekey
這個擴充預存程序將從註冊表裡刪除一個主鍵。用這個功能的時候務必小心!用法:
EXECUTE xp_regdeletekey [@rootkey=]'rootkey',
                        [@key=]'key'
比如要刪除“HKEY_LOCAL_MACHINE”中的“SOFTWARE\Test”這個主鍵,執行:
EXEC master..xp_regdeletekey @rootkey='HKEY_LOCAL_MACHINE',
                             @key='SOFTWARE\Test'

13、xp_regdeletevalue
這個擴充預存程序將刪除註冊表裡某個特定的索引值。用這個功能的時候務必小心!用法:
EXECUTE xp_regdeletevalue [@rootkey=]'rootkey',
                          [@key=]'key',
                          [@value_name=]'value_name'
比如,從“HKEY_LOCAL_MACHINE”中刪除“SOFTWARE\Test”下的“Testvalue”,執行:
EXEC master..xp_regdeletevalue @rootkey='HKEY_LOCAL_MACHINE',
                               @key='SOFTWARE\Test',
                               @value_name='Testvalue'

14、xp_regread
這個擴充預存程序從註冊表裡度資料。用法:
EXECUTE xp_regread [@rootkey=]'rootkey',
                   [@key=]'key'
                   [, [@value_name=]'value_name']
                   [, [@value=]@value OUTPUT]
比如要把“HKEY_LOCAL_MACHINE”中“SOFTWARE\Test”下的“Testvalue”讀到變數@test,執行:
DECLARE @test varchar(20)
EXEC master..xp_regread @rootkey='HKEY_LOCAL_MACHINE',
                        @key='SOFTWARE\Test',
                        @value_name='Testvalue',
                        @value=@test OUTPUT
SELECT @test

15、xp_regwrite
這個擴充預存程序用來寫註冊表。用法:
EXECUTE xp_regwrite [@rootkey=]'rootkey',
                    [@key=]'key',
                    [@value_name=]'value_name',
                    [@type=]'type',
                    [@value=]'value'
比如把變數“Test”寫到“HKEY_LOCAL_MACHINE”中“SOFTWARE\Test”下的“Testvalue”,執行:
EXEC master..xp_regwrite
     @rootkey='HKEY_LOCAL_MACHINE',
     @key='SOFTWARE\Test',
     @value_name='Testvalue',
     @type='REG_SZ',
     @value='Test'

16、xp_subdirs
這個擴充預存程序用於為在擴充儲存(xp)中命名的檔案夾列出資料夾清單。比之於xp_dirtree,xp_subdirs只返回那些深度為1(depth = 1)的檔案夾。這裡是例子:
EXEC master..xp_subdirs 'C:\MSSQL7'

注意:記住這些未公開的擴充預存程序不是Microsoft官方支援的,並且它們可能在下一個版本的SQL Server中無法找到。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.