我正在尝试使用以下插入sql查询将值从一个表插入到另一个表中
INSERT INTO [dbo].[table2]
SELECT Exec [StoredProcedure],
[Column1]
,[Column2]
FROM [dbo].[table1]
[table2]包含以下列:
[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
但是我遇到错误,无法调用存储过程吗?请提出任何建议。
提前谢谢
答案 0 :(得分:1)
您应该为此目的编写一个函数,在此处阅读
问题在于,存储过程并没有真正直接返回输出。他们可以在脚本内执行select语句,但没有返回值。 MySQL通过CALL StoredProcedureName()调用存储过程;而且您无法将输出定向到任何东西,因为它们不返回任何东西(不同于函数)。