2015-11-20 8 views

Odpowiedz

5

Cóż, można użyć SEQUENCE oświadczenie wprowadzony w SQL Server 2012 przynosi metodę generowania identyfikatorów

go używać w instrukcji INSERT, trzeba najpierw utworzyć sekwencję tak -

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

teraz używać go w iNSERT tak -

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

To wszystko.

2

Spróbuj utworzyć wyzwalacz

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

można załadować maksymalną wartość w tabeli i dodać +1

SELECT MAX(MyColumn)+1 FROM MyTable 

może dodać ISNULL na pierwszym biegu.

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

dziękuję. ale nie mogę tu użyć agregatu – bmsqldev