Tsql 使用存储过程获取下一个唯一记录值的Sql Insert
我正在使用一个存储过程来获取系统中的下一个唯一编号,但是如何在每次插入时执行该编号,目前它每次都运行并将OD_ID值设置为相同,但是我希望它在每次插入时运行已执行的语句 因此,字段OD_ID应该在每次插入时更改,但它保持不变,因为我想我不知道如何在每次插入运行时循环它,这里的任何帮助都将不胜感激Tsql 使用存储过程获取下一个唯一记录值的Sql Insert,tsql,insert,Tsql,Insert,我正在使用一个存储过程来获取系统中的下一个唯一编号,但是如何在每次插入时执行该编号,目前它每次都运行并将OD_ID值设置为相同,但是我希望它在每次插入时运行已执行的语句 因此,字段OD_ID应该在每次插入时更改,但它保持不变,因为我想我不知道如何在每次插入运行时循环它,这里的任何帮助都将不胜感激 DECLARE @Tbl TABLE(ID varchar(50)); INSERT INTO @Tbl EXEC [PLShared].[dbo].smsp_GetControlNumber 'ORD
DECLARE @Tbl TABLE(ID varchar(50));
INSERT INTO @Tbl EXEC [PLShared].[dbo].smsp_GetControlNumber 'ORDDET';
declare @ITEMDESC NVARCHAR(max)
SELECT @ITEMDESC = [DESC] + ' '+ EXTD_DESC FROM PLSHARED.DBO.ITEM WHERE ITEM_NO = 'F053'
--SELECT @ITEMDESC
begin
CREATE TABLE #hydrorainwinter2
( [Order_NO] [char] (20), [Item_No] [char] (20), [Price] [decimal] (15),
[Qty_Ord] [decimal] (15), [Qty_Pick] [decimal] (15), [Qty_Ship] [decimal] (15),
[UOM] [char] (10), [Job_Id] [char] (20), [OD_id] [char] (20),
[Extended] [decimal] (12), [Seq_no] [char] (6), [Print_Flag] [char] (1),
[GLCODE_COG] [char] (20), [GLCODE_INC] [char] (20), [DESC] [varchar] (max),
[Tax_code5] [char] (10)
)
INSERT INTO #hydrorainwinter2
select Ordhdr.order_no as Order_NO, 'F053' AS ITEM_NO, 0.00 AS PRICE, 1.00 AS QTY_ORD, 0.00 AS QTY_PICK, 0.00 AS QTY_SHIP, 'FLAT' AS UOM, ordhdr.JOB_ID as Job_id,(SELECT ID FROM @Tbl) AS OD_ID, 0.00 AS EXTENDED,
'999' AS SEQ_NO, 'N' AS PRINT_FLAG, '5000-000' AS GLCODE_COG, '4100-DDD' AS GLCODE_INC, @ITEMDESC AS [DESC], '00-TAXABLE' AS TAXCODE_5
FROM pl00.dbo.ordhdr
inner join plshared.dbo.client on client.ACCT_NO = ordhdr.ACCT_NO
inner join plshared.dbo.[system] on [system].ACCT_NO = client.ACCT_NO
where not exists (select *
from pl00.dbo.orddet
where orddet.ORDER_NO = ordhdr.order_no and orddet.ITEM_NO in ('F053') and ordhdr.[type] = 'RCO')
and [system].[TYPE] like ('%wifi%')
and [system].MANUFACT like '%HYDRORAIN%'
and ordhdr.[type] = 'RCO'
and ordhdr.CLOSED = 'N'
and (ordhdr.WORK_TYPE like '%SPRING%')
--and ordhdr.ACCT_NO = 'KNO-M35'
INSERT INTO PL00.DBO.orddet (ORDER_NO, ITEM_NO, PRICE, QTY_ORD, QTY_PICK, QTY_SHIP, UOM, JOB_ID, OD_ID, EXTENDED, SEQ_NO, PRINT_FLAG, GLCODE_COG, GLCODE_INC, [DESC], TAX_CODE5)
select *
FROM #hydrorainwinter2
Drop Table #hydrorainwinter2
END