【问题标题】:Call Stored Procedure While Inserting插入时调用存储过程
【发布时间】:2020-03-20 08:33:03
【问题描述】:

我正在尝试使用以下插入 sql 查询将值从一个表插入到另一个表中

INSERT INTO [dbo].[table2] 
SELECT Exec [StoredProcedure],
       [Column1]
      ,[Column2]
FROM [dbo].[table1] 

[table2] 具有以下列:

  1. RecNo,
  2. 第 1 列,
  3. 第 2 列

[StoredProcedure] 主要目的是每次在 table2 中插入新行时,它都会从 table2 中的 RecNo 中选择最大值,并将该数字加 1 以创建下一个数字(顺序)。 这是存储过程的脚本。

GO
ALTER  PROCEDURE [dbo].[UpdateRcnoNumbers]
@MaxRcno INT OUTPUT
AS
BEGIN 
 SELECT  @MaxRcno=MAX(Recno) FROM [table2]
 SELECT @MaxRcno=@MaxRcno+1
 RETURN @MaxRcno
END

但是我得到一个错误,我无法调用存储过程?请有任何建议。

提前谢谢你

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您应该为此编写一个函数,请在此处阅读

    问题是,存储过程并不真正直接返回输出。他们可以在脚本中执行 select 语句,但没有返回值。 MySQL 通过 CALL StoredProcedureName() 调用存储过程;而且您不能将该输出定向到任何东西,因为它们不返回任何东西(与函数不同)。

    Here

    MySQL Call Command

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-15
      • 2012-01-05
      • 2011-12-03
      • 2011-06-20
      • 1970-01-01
      • 2019-06-13
      相关资源
      最近更新 更多