|
По материалам статьи Alexander Chigrik на swynk.com «Useful undocumented extended stored procedures» Александр пишет, что расширенные хранимые процедуры – это
DLL, которые выполняются непосредственно в адресном
пространстве SQL сервера и используют SQL Server Open Data
Services API. Вы можете написать собственную расширенную
хранимую процедуру на языке программирования C. Вы можете
выполнять расширенные хранимые из Query Analyzer, как обычные
хранимые процедуры. Расширенные хранимые процедуры
используются для расширения возможностей SQL сервера. Sp_Msgetversion Эта хранимая процедура используется для получения текущей версии SQL сервера. Пример её использования: EXEC master..sp_MSgetversion Примечание. Между прочим, более распространённый способ получения текущей версии SQL сервера (выдаётся большее количество информации), это использование следующей конструкции: select @@version Xp_dirtree Эта хранимая процедура используется для получения списка всех подкаталогов для текущего каталога. Чтобы получить все подкаталоги из C:\MSSQL7, выполните: EXEC master..xp_dirtree 'C:\MSSQL7' Вот результат на машине Александра:
Xp_enum_oledb_providers Эта хранимая процедура может использоваться, чтобы получить список всех OLE DB провайдеров. Xp_enum_oledb_providers возвращает Provider Name, Parse Name и Provider Description. Чтобы получить список всех OLE DB провайдеров выполните: EXEC master..xp_enum_oledb_providers Xp_enumcodepages Эта хранимая процедура используется для получения списка всех кодовых страниц, наборов символов и их описаний. Пример её использования: EXEC master..xp_enumcodepages Xp_enumdsn Эта хранимая процедура возвращает список всех DSN систем и их описания. Чтобы получить список DSN систем, выполните: EXEC master..xp_enumdsn Xp_enumerrorlogsЭта хранимая процедура возвращает список всех файлов регистрации ошибки с последней датой изменения. Чтобы получить список файлов регистрации ошибки, выполните: EXEC master..xp_enumerrorlogs Вот результат на машине Александра: Archive #
Date Xp_enumgroups Эта хранимая процедура возвращает список групп Windows NT и их описание. Чтобы получить список групп Windows NT, выполните: EXEC master..xp_enumgroups Xp_fileexist Вы можете использовать эту расширенную хранимую процедуру, чтобы определить, существует ли заданный файл на диске или нет. Пример её использования: EXECUTE xp_fileexist filename [, file_exists INT OUTPUT] Чтобы проверить, существует ли файл boot.ini на диске c: или нет, выполните: EXEC master..xp_fileexist 'c:\boot.ini' Вот результат на машине Александра: File Exists File is
a
Directory Parent
Directory
Exists Xp_fixeddrives Это очень полезная расширенная хранимая процедура, которая возвращает список всех установленных жестких дисков и размер в МБ свободного пространства для каждого жесткого диска. Пример её использования: EXEC master..xp_fixeddrives Вот результат на машине Александра: drive MB
free Xp_getnetname Эта хранимая процедура возвращает WINS имя SQL сервера, с которым Вы связаны. Пример её использования: EXEC master..xp_getnetname Вот результат на машине Александра: Server Net Name Xp_readerrorlog Эта, хранимая процедура возвращает содержание errorlog файла. Вы можете найти этот файл в каталоге C:\MSSQL7\Log, куда он помещается по умолчанию. Чтобы видеть текст errorlog файла, выполните: EXEC master..xp_readerrorlog Xp_regdeletekey Эта хранимая процедура удалит ключ из системного реестра. Вы должны использовать её очень осторожно. Пример её использования: EXECUTE xp_regdeletekey
[@rootkey=]'rootkey', Чтобы удалить SOFTWARE\Test из раздела HKEY_LOCAL_MACHINE, выполните: EXECUTE
master..xp_regdeletekey Xp_regdeletevalue Эта хранимая процедура удалит установленное значение ключа системного реестра. Вы должны использовать её очень осторожно. Пример её использования: EXECUTE xp_regdeletevalue
[@rootkey=]'rootkey', Чтобы удалить значение TestValue для ключа SOFTWARE\Test из HKEY_LOCAL_MACHINE, выполните: EXEC
master..xp_regdeletevalue Xp_regread Эта хранимая процедура используется, чтобы читать из системного реестра. Пример её использования: EXECUTE xp_regread
[@rootkey=]'rootkey', Чтобы прочитать значение переменной @test из TestValue в ключе SOFTWARE\Test раздела HKEY_LOCAL_MACHINE, выполните: DECLARE @test varchar(20) Вот результат на машине
Александра: Xp_regwrite Эта хранимая процедура используется, чтобы записывать в системный реестр. Пример её использования: EXECUTE xp_regwrite
[@rootkey=]'rootkey', Чтобы записать Test в качестве значения TestValue, ключа SOFTWARE\Test раздела HKEY_LOCAL_MACHINE, выполните: EXECUTE
master..xp_regwrite Xp_subdirs Эта хранимая процедура используется, чтобы получить список подкаталогов для заданного каталога. По сравнению с xp_dirtree, xp_subdirs возвращает только те каталоги, у которых глубина вложенности равна единице. Пример её использования: EXECUTE master..xp_subdirs 'C:\MSSQL7' Вот результат на машине Александра: subdirectory |
Перевод: Александр Гладченко 2001г. |