2015-11-20 42 views
6

Chúng tôi có Non- IdentityColumn trong Cơ sở dữ liệu của chúng tôi Có giá trị cụ thể. Chúng tôi có yêu cầu như bên dưới,Tự động Tăng một cột không nhận dạng trong sql-server

Bất cứ khi nào một bản ghi insert vào cột đó, giá trị phải được tăng thêm một.

cách xử lý điều này trong sql server?

Cảm ơn sự giúp đỡ.

+0

Phiên bản máy chủ sql nào? –

+0

máy chủ sql 2012 – bmsqldev

+1

kích hoạt tôi giả sử. – KrazzyNefarious

Trả lời

5

Vâng, bạn có thể sử dụng SEQUENCE tuyên bố giới thiệu trong SQL Server 2012 mang lại phương pháp của các ID tạo

Để sử dụng nó trong bản Tuyên Bố chèn, bạn cần phải đầu tiên tạo ra chuỗi như thế này -

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

Bây giờ, hãy sử dụng nó trong câu lệnh chèn của bạn như thế này -

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

Vậy đó.

2

Thử tạo TRIGGER

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

Bạn có thể tải các giá trị tối đa của bảng và thêm +1

SELECT MAX(MyColumn)+1 FROM MyTable 

có thể thêm ISNULL cho chạy đầu tiên.

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

cảm ơn. nhưng tôi không thể sử dụng tổng hợp ở đây – bmsqldev

Các vấn đề liên quan