嗨,我目前正在创建 My SP,它根据我的 select 语句给出的结果插入和检测记录。
这是我的示例代码:
DECLARE @PickListBatchName varchar(200),
@PartNumber varchar(50),
@QTY int;
SET @PickListBatchName='TEST1';
SET @PartNumber='PN1';
SET @QTY=1;
--STEP 1 Add Result to TempTable
With SN as
(
SELECT TOP (@QTY)
pb.PickListBatchId
,pt.PickListTRANId
,pt.SerialNumber
,pt.Createdby
,pt.CreatedDT
FROM PickListTRAN pt
LEFT JOIN PickListBatchDetail pdb ON pdb.PickListBatchDetailId=pt.PickListBatchDetailId
LEFT JOIN PickListBatch pb ON pdb.PickListBatchId=pb.PickListBatchId
where pb.PickListBatchName=@PickListBatchName AND pdb.PartNumber=@PartNumber
)
--STEP 2: INSERT SN TO PicklistTranCancel
INSERT INTO PickListTRANCancel
(
PickListBatchId
,SerialNumber
,CreatedBy
,CreatedDT
)
(SELECT
PickListBatchId,
SerialNumber,
Createdby,
CreatedDT
FROM SN);
--STEP 3: DELETE Records on PicklistTran
DELETE FROM PicklistTran where picklistTranId IN (SELECT PickListTRANId FROM SN)
结果:
(1 row(s) affected)
Msg 208, Level 16, State 1, Line 49
Invalid object name 'SN'. --error on delete statement
在第 3 步,delete 语句无法读取 SN 表。也许我在那部分遗漏了一些东西。
感谢问候