首页 > 解决方案 > 在 Nodejs 中使用 async await 运行 SQL Server 存储过程

问题描述

我是使用带有 nodejs 的 SQL Server 的新手。我正在使用node-mssql图书馆。我发现存储过程有点挑战性。

我的存储过程是:

CREATE PROCEDURE [dbo].[sp_addStudent] 
    @StudentID int, 
    @StudentName varchar(50), 
    @TimeStamp datetime, 
    @Notes varchar(MAX) 
AS 
BEGIN 
    INSERT INTO Students (StudentID , StudentName , [TimeStamp], Notes) 
    VALUES (@StudentID , @StudentName , @TimeStamp, @Notes); 
END

我找到了一种使用try catch在线执行此存储过程的方法,无需参数:

async function getDataFromProcedure(dbConfig, procedureName) {
  try {
    await sql.connect(dbConfig);
    const request = new sql.Request();
    recordsets = await request.execute(procedureName);
    return recordsets[0];
  } catch (error) {
    // handle error here
  }
};

如何使用 try catch 向存储过程添加参数?

标签: node.jssql-servernode-mssql

解决方案


快速查看文档显示了如何添加输入/输出参数。例如:

const request = new sql.Request();
request.input('input_parameter', sql.Int, value);
request.output('output_parameter', sql.Int);
const result = await request.execute(procedureName);

这将包括一个称为value输入参数的变量input_parameter,并设置一个名为的预期输出参数output_parameter(这里假设它们都已在存储过程中定义)。输出参数稍后可以在 中观察到result.output


推荐阅读