我通常这样做的方式是使用内置的 XML 函数(如果您使用的是 SQL Server 2005 或更高版本)。
查看此 MSDN 页面:http: //msdn.microsoft.com/en-us/library/ms178030
这是一个返回特定 reg 键的子节点数的示例SOFTWARE\Microsoft\Windows\BlaBla
...
DECLARE @x xml
SET @x='<DynamicResults>
<RegQuery xmlns:xsi="http://www.w3.o....." xmlns:xsd="http://....." REGServer="localhost" REGHive="HKEY_LOCAL_MACHINE" REGSubKey="SOFTWARE\Microsoft\Windows\BlaBla">
<SubNode />
<SubNode />
</RegQuery>
<RegQuery xmlns:xsi="http://www.w3.o....." xmlns:xsd="http://....." REGServer="localhost" REGHive="HKEY_LOCAL_MACHINE" REGSubKey="SOFTWARE\Microsoft\Windows\BlaBla2" />
<RegQuery xmlns:xsi="http://www.w3.o....." xmlns:xsd="http://....." REGServer="localhost" REGHive="HKEY_LOCAL_MACHINE" REGSubKey="SOFTWARE\Microsoft\Windows\BlaBla3" />
</DynamicResults>'
SELECT @x.value('count(/DynamicResults/RegQuery[@REGSubKey="SOFTWARE\Microsoft\Windows\BlaBla"]/*)','INT')
GO