2015-11-20 4 views

答えて

5

さて、あなたは、SQL Server 2012で導入されたSEQUENCEステートメントを使用することができますが、INSERT文でそれを使用するにはIDが

を生成する方法をもたらし、あなたが最初にこのようにシーケンスを作成する必要があります -

CREATE SEQUENCE dbo.Id_Sequence 
    AS INT 
    START WITH 1 
    INCREMENT BY 1 
    MINVALUE 0 
    NO MAXVALUE 

今、このようなあなたのINSERT文でそれを使用する -

INSERT INTO dbo.Test1 
     (orderid , 
      custid , 
      empid 
     ) 
     SELECT NEXT VALUE FOR dbo.Id_Sequence, 
       @custid , 
       @empid 

それだけです。

2

は、あなたがテーブルの最大値をロードし、多分最初の実行のためにISNULLを追加+1

SELECT MAX(MyColumn)+1 FROM MyTable 

を追加することができTRIGGER

CREATE TRIGGER incrementValue 
ON Test 
FOR Insert 
AS 
    Update Test 
    set columnvalue = columnvalue +1 
    where id in (select id from inserted) 
GO 
1

を作成してみてください。

ISNULL((SELECT MAX(MyColumn)+1 FROM MyTable),0) 
+0

ありがとうございます。私はここで集約を使用することはできません – bmsqldev

関連する問題