node.js - 如何使用 Sequelize 中的输出参数在 SQL Server 中执行存储过程?
问题描述
当我尝试使用以下输出参数执行存储过程时出现错误Sequelize
:
Executing (default): spsPerson @PersonID=0 OUTPUT, @Firstname=N'test', @Lastname=N'test'
UnhandledPromiseRejectionWarning: SequelizeDatabaseError: 将常量传递给存储过程时无法使用 OUTPUT 选项。
这是代码:
seq.query(
'spsPerson @PersonID=:PersonID OUTPUT, @Firstname=:firstname, @Lastname=:lastname,
{
type: seq.QueryTypes.SELECT,
replacements: {
PersonID: 0,
Firstname: 'test',
Lastname: 'test'
},
}
);
这是我的存储过程:
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[spsPerson]
@PersonID INT OUTPUT,
@Firstname VARCHAR(50),
@Lastname VARCHAR(255)
AS
INSERT INTO PersonTable (Firstname, Lastname)
VALUES (@Firstname, @Lastname)
SET @PersonID = SCOPE_IDENTITY()
GO
我不关心输出参数,只想执行这个存储过程而不改变它。
解决方案
我暂时不测试它。你试一试并告诉我
定义存储功能:
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[spsPerson]
@Firstname VARCHAR(50),
@Lastname VARCHAR(255)
AS
INSERT INTO PersonTable (Firstname, Lastname)
VALUES (@Firstname, @Lastname)
return (SELECT IDENT_CURRENT('PersonTable'))
GO
在 sequelize 中查询:
sequelize
.query('CALL spsPerson (:Firstname, :Lastname)',
{replacements: { Firstname: 'fistname', Lastname: 'lastname' }})
.then(v=>console.log(v));
推荐阅读
- amazon-web-services - AWS IAM 用户登录集成是否可以通过自定义应用程序完成?
- python - 用列表填充 Pandas 列的空值
- excel - 在 Excel 或 Power BI 中,当我只有每个项目的开始和结束日期时,如何将“正在进行的项目”分配给一年中的每个日期?
- python - 在 Pandas 的 Lambda 函数中使用条件语句的问题
- reactjs - 基于单选选择渲染 html
- python - 有没有一种好方法可以遍历由 javascript pageNav 值定义的数百个页面?
- java - 不同尺寸设备之间的响应问题
- c++ - 用c++添加一系列数字[1--> 5000]?
- javascript - 收集图中 1 点到所有其他点的距离(并恢复路径)
- ruby - 为什么在一种情况下不能用 shovel << (冻结的字符串)修改字符串(来自 ARGV),但在另一种情况下却可以?