Javascript 处理Node.js和mssql模块中的空字段

Javascript 处理Node.js和mssql模块中的空字段,javascript,sql-server,node.js,stored-procedures,node-mssql,Javascript,Sql Server,Node.js,Stored Procedures,Node Mssql,尝试使用mssql模块从node.js调用sql server存储过程时,调用时会抛出错误EREQUEST,错误详细信息:RequestError:无法将值NULL插入列“colName”。不知道为什么,但在sql server上运行时,它会按预期工作并给出结果。我的存储过程包含临时表,并在某些列中插入空值。请参考以下代码 var request = new sql.Request(); request.input("param1", value1); request.i

尝试使用mssql模块从node.js调用sql server存储过程时,调用时会抛出错误EREQUEST,错误详细信息:RequestError:无法将值NULL插入列“colName”。不知道为什么,但在sql server上运行时,它会按预期工作并给出结果。我的存储过程包含临时表,并在某些列中插入空值。请参考以下代码

    var request = new sql.Request();
    request.input("param1", value1);
    request.input('param2', value2);

    request.stream = true;  
    request.execute('Sp_Name', function (err, recordset) {
    });

    var rows = [];
    request.on('row', function (row) {
        rows.push(row);
        console.dir(row);
    });

    request.on('error', function (err) {
        console.log('IN error =>' + err.code + "=>"  +err);

    });

    request.on('done', function (returnValue) {
        console.log('IN Done');
    });

感谢您的帮助。:

每当我遇到SQL语句与客户端调用的SQL语句不一样时,这通常意味着在SSMS中模拟的内容与应用程序实际调用的内容之间存在一些差异。首先,我将跟踪colName在proc中的填充方式,然后按照您的方式向后操作,看看如何根据您的输入参数将放入该列的内容设置为null。但是,如果没有看到SQL代码,您的猜测和我的一样好。@Xedni,这样做没有任何意义,他说存储过程在服务器上运行良好,但不能通过NodeJS mssql工作,因此,很明显,问题与NodeJS mssql有关,而不是与存储过程有关。@VinayKharecha您认为这没有意义吗?出现的错误是SQL Server数据库错误,因此很明显,调用正在传递到数据库。如果他在SSMS中进行的调用有效,但来自节点的等效调用返回该错误,则是过程的参数以及传递到过程中的内容有问题。这让我回到了我在11号发布的内容。要么找出一种方法来准确地调试传递到SQL中的内容,要么从另一端开始工作,并确定过程中的哪些参数可能导致此类错误。@Xedni我在bothi.e SSMS和node.js中传递相同的参数,还从node.js中调试传递的内容,因为传递的是相同的参数。