DECLARE @test varchar(20)
EXEC master..xp_regread @rootkey='HKEY_LOCAL_MACHINE',
@key='SOFTWARETest',
@value_name='TestValue',
@value=@test OUTPUT
SELECT @test
-- 1. 枚举所有的 Keys
xp_instance_regenumkeys;
'HKEY_LOCAL_MACHINE',-- 根, 注册表固定有下面几个
-- HKEY_CLASSES_ROOT
-- HKEY_CURRENT_USER
-- HKEY_LOCAL_MACHINE
-- HKEY_USERS
'SYSTEM';;;;;-- 子键, 如果为 NULL, 表示列出根下面的第1层子键
-- 2. 枚举所有的键值及数据
xp_regenumvalues
'HKEY_LOCAL_MACHINE',-- 根, 注册表固定有下面几个
-- HKEY_CLASSES_ROOT
-- HKEY_CURRENT_USER
-- HKEY_LOCAL_MACHINE
-- HKEY_USERS
'SYSTEM';;;;;-- 子键, 如果为 NULL, 表示列出根下面的第1层子键
-- 每个键值为一个结果集, 注意, 一般的键值有两列, 有的键值有多列
-- 3. 读取键值
DECLARE @re varchar(8000)
EXEC xp_regread
'HKEY_CLASSES_ROOT',-- 根, 注册表固定有下面几个
-- HKEY_CLASSES_ROOT
-- HKEY_CURRENT_USER
-- HKEY_LOCAL_MACHINE
-- HKEY_USERS
'*',-- 子键, 如果为 NULL, 表示列出根下面的第1层子键
'QuickTip',;-- 键值, 如果只指定前面两项, 则用于判断某个 Key 是否存在
@re OUT;;;;;-- 保存结果的变量, 如果不指定, 则输出为结果集
SELECT @re