0

自動インクリメント ID ('requestid' の名前) を持つテーブルにデータを挿入するストアド プロシージャがあります。プロシージャを使用してデータを挿入するときに、自動インクリメント フィールドの値を取得し、同じストアド プロシージャに対する別のクエリで使用したいと考えています。それ、どうやったら出来るの?よろしくお願いいたします。

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 
4

3 に答える 3

1

試す

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 
于 2013-10-10T11:07:59.040 に答える
0

シーケンスを使用してインクリメントする代わりに、自動インクリメントを使用しないでください。そうすれば、その値をどこでも再利用できます。

于 2013-10-10T11:07:33.553 に答える
-1

また使用することができます:

IDENT_CURRENT ('dbo.Requests')

IDENT_CURRENT に関する情報 http://technet.microsoft.com/en-us/library/ms175098.aspx

于 2013-10-10T11:15:49.317 に答える