我正在创建一个使用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;
答案 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);
}