ReqId RespId NAME Part Type Base
----------------------------------------------------------------------------
674508621DF6 D5830288F5C2 00000233A NULL NULL NULL
C356C1E03784 D5830288F5C2 00000233A NULL NULL NULL
当我使用存储过程部件运行以下查询时,我得到上述结果。现在我想使用SP的返回值来更新SP。
DECLARE @TempTable Table(
ReqId varchar(255),
RespId varchar(255),
Name varchar(255),
Part bit,
Type bit,
Base bit)
INSERT @TempTable (ReqId ,RespId ,Name)
Select * from DistributesSystemsView DSV
join MyDomain MD with(nolock) on MD.MyDomainID = DSV.MyDomainId
where DSV.LotOperationSegmentResponseId=@LotOpSegRespId
存储过程部分
我应该能够使用以下SP更新part,Type and Base
列,该MD将MD.DomainId作为参数从上面的连接语句
INSERT @TempTable(Part,Type,Base)
EXECUTE [SOADB].[dbo].[spLocal_AnotherSpl] MD.MyDomainID
Select * from @TempTable
答案 0 :(得分:0)
如果我理解你的问题,你可以尝试这样的事情。
MyDomainID
@TempTable
@TempTable
@TempTable2
,用于存储您从特定@MyDomainID
@TempTable
@TempTable2
的更新
@MyDomainID
<强>查询强>
DECLARE @TempTable Table(
MyDomainID varchar(255),
ReqId varchar(255),
RespId varchar(255),
Name varchar(255),
Part bit,
Type bit,
Base bit);
INSERT @TempTable (MyDomainId,ReqId ,RespId ,Name)
Select DSV.MyDomainId,ReqId ,RespId ,Name from DistributesSystemsView DSV
join MyDomain MD with(nolock) on MD.MyDomainID = DSV.MyDomainId
where DSV.LotOperationSegmentResponseId=@LotOpSegRespId
DECLARE @TempTable2 Table(
Part bit,
Type bit,
Base bit)
INSERT @TempTable(Part,Type,Base)
EXECUTE [SOADB].[dbo].[spLocal_AnotherSpl] @MyDomainID
UPDATE T
SET Part = Temp2.Part ,
Type = Temp2.Type,
Base = Temp2.Base
FROM @TempTable T
CROSS JOIN @TempTable2 Temp2
WHERE T.MyDomainID = @MyDomainID
答案 1 :(得分:0)
假设程序[SOADB]。[dbo]。[spLocal_AnotherSpl]仅返回3列(部分,类型,基数)和&amp; @MyDomainID(int)是要传递给sp ..
的单个参数Declare @query varchar(max)
Set @query = 'EXEC [SOADB].[dbo].[spLocal_AnotherSpl] ' + ltrim(rtrim( str ( @MyDomainID )))
INSERT @TempTable(Part,Type,Base)
Exec( @query )
如果无法传递单个参数,请传递表类型或在其他sp ..
中写入查询答案 2 :(得分:-1)
您可以输出SP的Part, Type, Base
输出参数。
CREATE PROCEDURE spMyProc
@MyDomainID int,
@part bit output,
@type bit output,
@base bit output
AS
...
然后声明并将变量发送到SP:
DECLARE @part bit, @type bit, @base bit
EXECUTE [SOADB].[dbo].[spLocal_AnotherSpl] MD.MyDomainID, @part output, @type output, @base output
最后,您可以对值@part @type @base