Každá edice SQL Serveru zahrnuje množství uložených a extended procedur, které nejsou zmíněny v oficiální dokumentaci, což znamená především to, že jsou určeny pouze pro interní potřebu Microsoftu a mohou být kdykoliv změněny nebo odstraněny. Přesto je spousta z nich nebývale užitečná a používána široce i komunitou. Dnes se podíváme na některé z nich.
sp_Msgetversion
- vrátí verzi serveru, nahrazeno @@VERSION
xp_dirtree
- vrátí seznam adresářů včetně podadresářů do všech levelů
- EXEC master..xp_dirtree ‘C:\’
xp_subdirs
- na rozdíl od xp_dirtree vrací složky pouze do hloubky = 1
- EXEC master..xp_dirtree ‘C:\’
xp_enum_oledb_providers
- zobrazí seznam OLE DB providerů v systému
xp_enumcodepages
- zobrazí seznam kodových stránek serveru
xp_enumerrorlogs
- zobrazí seznam serverových logů
xp_enumgroups
- zobrazí NT skupiny
xp_fileexist
- zjistí, zda soubor existuje
- EXEC master..xp_fileexist ‘c:\boot.ini’
xp_fixeddrives
- zobrazí písmeno a velikost systémových disků
xp_getnetname
- zobrazí WINS name SQL serveru
xp_readerrorlog
- přečte aktuální error log
xp_regdeletekey
- vymaže klíč z registru
- EXEC master..xp_regdeletekey @rootkey=’HKEY_LOCAL_MACHINE’, @key=’SOFTWARE\Test’
xp_regdeletevalue
- vymaže hodnotu klíče v registru
- EXEC master..xp_regdeletevalue @rootkey=’HKEY_LOCAL_MACHINE’, @key=’SOFTWARE\Test’, @value_name=’TestValue’
xp_regread
- přečte hodnotu z registru
- DECLARE @test varchar(20)
EXEC master..xp_regread @rootkey=’HKEY_LOCAL_MACHINE’, @key=’SOFTWARE\Test’, @value_name=’TestValue’, @value=@test OUTPUTSELECT @test
- DECLARE @test varchar(20)
xp_regwrite
- zapíše hodnotu do registru
- EXEC master..xp_regwrite @rootkey=’HKEY_LOCAL_MACHINE’, @key=’SOFTWARE\Test’, @value_name=’TestValue’, @type=’REG_SZ’, @value=’Test’
sp_MShasdbaccess
- vypíše všechny databáze, ke kterým má uživatel přístup