获取实例未在Node.js中返回值

时间:2018-08-14 09:40:41

标签: sql sql-server node.js express

我正在创建一个使用MSSQL nodejs并为后端表达的应用程序。连接和普通SELECT查询均有效。但是,如果我使用以下语句,则它在SSMS中运行良好,但使用request.query(/**some code here**/)它不会返回任何内容。查询是成功的但空白数组。有人可以检查出是否有问题吗?

我的Node.js代码如下:

var queryString = "DECLARE @GetInstances TABLE (Value nvarchar(100), InstanceNames nvarchar(100), Data nvarchar(100)); Insert into @GetInstances Execute xp_regread @rootkey = 'HKEY_LOCAL_MACHINE', @key = 'SOFTWARE\\Microsoft\\Microsoft SQL Server', @value_name = 'InstalledInstances'; Select InstanceNames from @GetInstances;"

request.query(queryString, function(err,data){
    if(!err) res.send(data);
}

我在SSMS中的查询给出了结果:

DECLARE @GetInstances TABLE 
   (Value nvarchar(100), InstanceNames nvarchar(100), Data nvarchar(100));

 Insert into @GetInstances 
 Execute xp_regread 
      @rootkey = 'HKEY_LOCAL_MACHINE',
      @key = 'SOFTWARE\Microsoft\Microsoft SQL Server', 
      @value_name = 'InstalledInstances';

  Select InstanceNames from @GetInstances;

1 个答案:

答案 0 :(得分:0)

我相信您在SQL代码倒数第二行'上缺少@value_name = 'InstalledInstances;,应该是:@value_name = 'InstalledInstances';

var queryString = "DECLARE @GetInstances TABLE (Value nvarchar(100), InstanceNames nvarchar(100), Data nvarchar(100)); Insert into @GetInstances Execute xp_regread @rootkey = 'HKEY_LOCAL_MACHINE', @key = 'SOFTWARE\\Microsoft\\Microsoft SQL Server', @value_name = 'InstalledInstances'; Select InstanceNames from @GetInstances;"

request.query(queryString, function(err,data){
    if(!err) res.send(data);
}