如何将参数值从一个存储过程传递到另一个存储过程



我正在尝试将输入参数从一个存储过程传递到另一个存储过程,该参数的值将用于插入表。

我有两个存储过程,这是SP的逻辑:

第一个 -

CREATE PROCEDURE [abc].[SP1](
@ID1     INT
@ID2     INT
@Date    VARCHAR(10)
@Value   VARCHAR(50)
)
AS 
Select into #temp...
EXEC [abc].[SP2] @ID1, @ID2, @Date, @Value
Select...

第二个 -

CREATE PROCEDURE [abc].[sp2](
@bID1    INT
@bID2    INT
@bDate   VARCHAR(10)
@Value   VARCHAR(50)
)
DECLARE @bID1 INT, @bID2 INT, @bDate VARCHAR(10), @Value VARCHAR(50)

--main part that I'm concerned with, getting the parameter values to work
SELECT @bID1, @bID2, @bDate, @Value, x.col1, x.col2 
INTO [abc].[tableA]
FROM tableX x

当我尝试此操作时,我会收到一个错误,说我"必须声明标量变量"

这不是您在SQL Server中创建过程的方式。您应该做这样的事情:

CREATE PROCEDURE [SP1]
 @ID1     INT
,@ID2     INT
,@Date    VARCHAR(10)
,@Value   VARCHAR(50)
AS 
Select into #temp...

其次,当您声明该过程的参数时,您无法声明具有相同名称的变量:

 CREATE PROCEDURE [abc].[sp2]
 @bID1    INT
,@bID2    INT
,@bDate   VARCHAR(10)
,@Value   VARCHAR(50)
AS
--main part that I'm concerned with, getting the parameter values to work
SELECT @bID1, @bID2, @bDate, @Value, x.col1, x.col2 
INTO [abc].[tableA]
FROM tableX x

相关内容

  • 没有找到相关文章

最新更新