我正在尝试将输入参数从一个存储过程传递到另一个存储过程,该参数的值将用于插入表。
我有两个存储过程,这是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