我正在尝试从注册表中检索值并存储其INT值。注册表项是DWORD并且是十六进制格式,但是当使用xp_regread检索值时,它返回十六进制值,我需要十进制数字.....任何帮助?
Reg键:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ShortCuts\General]
"Appointment Interval"=dword:0000000f
上述键的十进制值应为15
用于返回/存储值的代码:
DECLARE @Interval INT
DECLARE @temp_table TABLE (Value nvarchar(500), Data nvarchar(500))
INSERT INTO @temp_table EXEC master.sys.xp_regread 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Wow6432Node\Shortcuts\General', 'Appointment Interval'
SELECT @Interval = Data FROM @temp_table
返回变量@Interval当前返回5
答案 0 :(得分:1)
您可以首先将@temp_table中的数据列声明为VARBINARY(8),因为这将表示十六进制值。接下来,将数据字段分配给@Interval变量时,将其转换为INT,如下所示:
CONVERT(INT,Data)
希望这有帮助。