2016-11-16 8 views
0

Я использовал XP_READREG, чтобы прочитать разделы реестра до этого, и он отлично работает. Теперь мне нужно прочитать значение по умолчанию для ключа. Каков синтаксис для чтения «(по умолчанию)» из раздела реестра?SQL Server XP_READREG - Читать значение ключа по умолчанию

Я пробовал установить @value_name на '' или '.' или '(Default)' без успеха.

Я могу выполнить запрос без @value_name, и я вернусь KeyExist = 1, указав, что корневая и ключевая точки правильно.

Это общий запрос, который я использую:

DECLARE @RegLoc VARCHAR(100) 
select @RegLoc='TypeLib\{4BF5E120-AE37-4090-A83F-A1A8A5228371}\1.0\0\win64' 

EXEC [master].[dbo].[xp_regread] @rootkey='HKEY_CLASSES_ROOT', 
            @[email protected], 
            @value_name='' 
+2

Пробовал пропустить 'NULL'? –

+0

@Alex K. Это был трюк, спасибо! –

ответ

2

OK, @Alex К. указал трюк в комментарии к этому вопросу, передать нуль для @value_name. Первоначально я пытался исключить его, но потом программа по умолчанию использует существующие тесты. Явное пропускание null приводит к тому, что xp_regread возвращает значение по умолчанию для ключей реестра. Например:

DECLARE @RegLoc VARCHAR(100) 
DECLARE @ValueName varchar(100) -- leave this unassigned to get the default value 

select @RegLoc='TypeLib\{4BF5E120-AE37-4090-A83F-A1A8A5228371}\1.0\0\win64' 


EXEC [master].[dbo].[xp_regread] @rootkey='HKEY_CLASSES_ROOT', 
            @[email protected], 
            @value_name = @ValueName 
Смежные вопросы