gpt4 book ai didi

node.js - 如何使用Sequelize中的输出参数在SQL Server中执行存储过程?

转载 作者:行者123 更新时间:2023-12-03 22:43:40 24 4
gpt4 key购买 nike

当我尝试在 Sequelize 中使用输出参数执行存储过程时出现错误:

Executing (default): spsPerson @PersonID=0 OUTPUT, @Firstname=N'test', @Lastname=N'test'

UnhandledPromiseRejectionWarning: SequelizeDatabaseError: Cannot use the OUTPUT option when passing a constant to a stored procedure.



这是代码:
  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

我不在乎输出参数,只想在不更改它的情况下执行此存储过程。

最佳答案

问题在于 OUTPUT 参数,您为其分配了 0 值,这导致了问题。

这是在 TSQL 中执行它以获取变量 @results 的结果的方式:

declare @results int;
exec dbo.spsPerson @results OUTPUT, @Firstname=N'test', @Lastname=N'test'
select @results;

如果你根本不关心结果:
exec dbo.spsPerson NULL, @Firstname=N'test', @Lastname=N'test'

关于node.js - 如何使用Sequelize中的输出参数在SQL Server中执行存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54854705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com