簡體   English   中英

共享來自SQL存儲過程的自動增量值

[英]Share auto-increment value from SQL stored procedure

我有一個存儲過程,該過程將數據插入具有自動增量ID(名稱為“ requestid”)的表中。 當我使用該過程向其中插入數據時,我想獲取auto-increment字段的值,並將其用於對同一存儲過程的另一個查詢。 我怎么做? 預先感謝您的寶貴時間。

CREATE PROCEDURE [dbo].[sp_Create_new_request]
       @employeeid                     INT                    , 
       @requestdate                    DATETIME               , 
       @deliverdate                    DATETIME               , 
       @totalcost                      MONEY                 

AS 
BEGIN 


     INSERT INTO dbo.Requests
          ( 
            EmployeeID                    ,
            RequestDate                   ,
            DeliverDate                   ,
            TotalCost                     

          ) 
     VALUES 
          ( 
            @employeeid                   ,
            @requestdate                  ,
            @deliverdate                  ,
            @totalcost                    

          ) 



END 

嘗試

CREATE PROCEDURE [dbo].[sp_Create_new_request]
   @employeeid                     INT                    , 
   @requestdate                    DATETIME               , 
   @deliverdate                    DATETIME               , 
   @totalcost                      MONEY,
requestid               INT             = NULL OUT                 

AS 
BEGIN 


 INSERT INTO dbo.Requests
      ( 
        EmployeeID                    ,
        RequestDate                   ,
        DeliverDate                   ,
        TotalCost                     

      ) 
 VALUES 
      ( 
        @employeeid                   ,
        @requestdate                  ,
        @deliverdate                  ,
        @totalcost                    

      ) 

 SET @requestid = SCOPE_IDENTITY();

END 

您不應使用自動增量,而應使用序列來增量,然后可以在任何地方重用該值。

您也可以使用:

IDENT_CURRENT(“ dbo.Requests”)

有關IDENT_CURRENT的信息http://technet.microsoft.com/zh-cn/library/ms175098.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM