2016-11-16 2 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 K.は@value_nameにnullを渡し、質問へのコメントにトリックを指摘しました。私はもともとそれを省略しようとしましたが、procはデフォルトの存在テストになりました。明示的に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 
関連する問題