Tsql 使用存储过程获取下一个唯一记录值的Sql Insert

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

我正在使用一个存储过程来获取系统中的下一个唯一编号,但是如何在每次插入时执行该编号,目前它每次都运行并将OD_ID值设置为相同,但是我希望它在每次插入时运行已执行的语句

因此,字段OD_ID应该在每次插入时更改,但它保持不变,因为我想我不知道如何在每次插入运行时循环它,这里的任何帮助都将不胜感激

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