我正在尝试将输入参数从一个存储过程传递到另一个存储过程,该参数的值将被用于插入表中。
我有两个存储过程,这是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
尝试此操作时,我收到一条错误消息,提示我“必须声明标量变量”
答案 0 :(得分:1)
这不是在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