插入时调用存储过程

时间:2019-11-25 04:28:33

标签: mysql

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

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

[table2]包含以下列:

  1. RecNo,<-INT
  2. 第1列,<-VARCHAR(50)
  3. 第2列<-VARCHAR(50)

[StoredProcedure]的主要目的是,每当要在表2中插入新行时,它都会从表2的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

但是我遇到错误,无法调用存储过程吗?请提出任何建议。

提前谢谢

1 个答案:

答案 0 :(得分:1)

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

  

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

Here

MySQL Call Command