如何使用 Sequelize 调用 MSSQL 存储过程?

Posted

技术标签:

【中文标题】如何使用 Sequelize 调用 MSSQL 存储过程?【英文标题】:How to call a MSSQL Stored Procedure using Sequelize? 【发布时间】:2017-01-16 00:34:53 【问题描述】:

我正在努力使用 Sequelize 调用 MS SQL 存储过程。这就是我通常从 SSMS 调用存储过程的方式

USE [MYDB]
GO

DECLARE    @return_value int

EXEC    @return_value = [dbo].[GetThings_ByLocation]
        @BeginDate = N'2016-06-23',
        @EndDate = N'2016-07-09',
        @LocationID = NULL

SELECT    'Return Value' = @return_value

GO

我将如何使用 sequelize 进行此调用?

【问题讨论】:

请在下面的 *** 上查看我的问题和简化答案。无需格式化参数,因为您可以使用替换功能。 Sequelize Stored Procedure 【参考方案1】:

Sequelize 使用 npm 包 Tedious (https://www.npmjs.com/package/tedious) 来处理 MS SQL。连接数据库和其他的一样。

您可以使用原始查询从存储过程中获取结果。

sequelize.query('GetThings_ByLocation @BeginDate=\'2016-08-01\', @EndDate=\'2016-08-07\', @LocationID=NULL;')
  .then(function(result) 
      console.log('RESULT', result);
  )
  .error(function(err) 
      console.log(err);
  );

【讨论】:

使用 .spread(function(result).... 而不是 .then(function(result)...... 会是更好的选择

以上是关于如何使用 Sequelize 调用 MSSQL 存储过程?的主要内容,如果未能解决你的问题,请参考以下文章

sequelize 用于PostgreSQL,MySQL,SQLite和MSSQL的Node.js / io.js ORM

Sequelize 无密码查询日志

可以用 MSSQL 进行微风续集吗?

如何在 Sequelize/Node JS 中为数据类型 TIME 发送数据

sequelize.query 原始查询

如何在 Sequelize 中使用“不同”?