因为某些原因,一定要在存储过程里面获取注册表里面的信息'HKEY_LOCAL_MACHINE\SOFTWARE\TMMSNER\CRM'中'Path'的键值,
'Path'的类型是'REG_EXPAND_SZ',我在网上看了一下,如果用exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\TMMSNER\CRM','Path',显示不出任何数据,但是如果'Path'的类型是'REG_SZ'就可以看得到数据,如果在后面加上'Path'的类型的话,即exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\TMMSNER\CRM','Path','REG_SZ'则数据不会显示出来,是什么原因呢?'REG_EXPAND_SZ'类型的键值读不出来吗?还有就是我想把键值保存在一个变量里面,但是总提示OUT错误,
DECLARE @re varchar(8000)
EXEC xp_regread
'HKEY_LOCAL_MACHINE', 
'SOFTWARE\TMMSNER\CRM',
'Path'
Set @re Out 
SELECT @re请教高手帮忙!
先谢谢了

解决方案 »

  1.   

    DECLARE @re varchar(8000) 
    EXEC xp_regread 
    'HKEY_LOCAL_MACHINE', 
    'SOFTWARE\TMMSNER\CRM', 
    'Path' 
    Set @re OUTPUT 
    SELECT @re 
    这样?
      

  2.   

    主要是第一个问题,'REG_EXPAND_SZ'和'REG_SZ',第2个就可以得到,第1个就得不到键值,怎么办呢?还是我少写了什么?
      

  3.   

    CREATE TABLE #(value varchar(20),Data varchar(200))INSERT # 
    EXEC master..xp_regread 
    'HKEY_LOCAL_MACHINE', 
    'SOFTWARE\TMMSNER\CRM', 
    'Path'SELECT * FROM #