Otomatik numara Sequence nedir

Sequence  (Otomatik Numara)

Sözdizimi ve örneklerle SQL Server'da (Transact-SQL) Sequencelerin nasıl olşutuulcağını öğrenelim
SQL Server'da, Sequenceleri  kullanarak bir otomatik numara alanı oluşturabilirsiniz. Sequence , SQL Server'da (Transact-SQL) bir sayı dizisi oluşturmak için kullanılan bir nesnedir. Birincil anahtar olarak çalışmak için benzersiz bir numara oluşturmanız gerektiğinde bu yararlı olacaktır.
Sequence Oluşturmak
Bir otomatik numara alanını işlemek için SQL Server'da bir dizi oluşturmak isteyebiliriz. ve bunun için sequenceleri kullanırız.

Sözdizimi

SQL Server'da (Transact-SQL) bir dizi oluşturmak için kullanılan sözdizimi şöyledir:


CREATE SEQUENCE [schema.]sequence_name
  [ AS datatype ]
  [ START WITH value ]
  [ INCREMENT BY value ]
  [ MINVALUE value | NO MINVALUE ]
  [ MAXVALUE value | NO MAXVALUE ]
  [ CYCLE | NO CYCLE ]
  [ CACHE value | NO CACHE ]; 

AS datatype
BIGINT, INT, TINYINT, SMALLINT, DECIMAL veya NUMERIC olabilir. Veri türü belirtilmezse, sıralama varsayılan olarak bir BIGINT veri türüne göre olacaktır.
START WITH
Dizinin esas olarak döndürdüğü başlangıç ​​değeri.
INCREMENT BY value
Olumlu ya da olumsuz bir değer olabilir. Pozitif bir değer belirtilirse, dizi artan bir değer dizisi olacaktır. Negatif bir değer belirtilirse, dizi azalan bir değer dizisi olacaktır.
MINVALUE
Dizi için izin verilen minimum değer.
NO MINVALUE
Bu, dizi için belirtilen minimum değer olmadığı anlamına gelir.
MAXVALUE
Dizi için izin verilen maksimum değer.
NO MAXVALUE
Bu, sekans için belirtilen maksimum değer olmadığı anlamına gelir.
CYCLE
Bu, diziyi tamamladıktan sonra dizinin başlayacağı anlamına gelir.
NO CYCLE
Bu, diziyi tamamladığında dizinin bir hataya neden olacağı anlamına gelir. Diziyi tekrar başlatmaz.
CACHE
Disk IO'sunu en aza indirmek için sıra numaralarını önbelleğe alır.
NO CACHE
Sıra numaralarını önbelleğe almaz.


Örnek
SQL Server'da (Transact-SQL) bir dizinin nasıl oluşturulacağına bir örnek verelim.

Örneğin:

 
CREATE SEQUENCE contacts_seq
  AS BIGINT
  START WITH 1
  INCREMENT BY 1
  MINVALUE 1
  MAXVALUE 99999
  NO CYCLE
  CACHE 10;
  
Bu, contact_seq adlı bir dizi nesnesi oluşturacaktır. Kullanacağı ilk dizi numarası 1'dir ve sonraki her sayı 1 kadar artar (yani: 2,3,4, ...}. Performans için 10 değere kadar önbelleklenir. Sıra numarasının yapabildiği maksimum değer. be 99999 ve sıra maksimuma ulaşıldığında bir kez dönmeyecek.
Böylece, CREATE SEQUENCE ifadenizi aşağıdaki şekilde basitleştirebilirsiniz:

CREATE SEQUENCE contacts_seq
  START WITH 1
  INCREMENT BY 1;
  


NEXT VALUE FOR

Artık bir otomatik numara alanını simüle etmek için bir dizi nesnesi oluşturduğunuza göre, bu dizi nesnesinden nasıl değer alacağımızı ele alacağız. Sıradaki değeri sıra sırasına göre almak için NEXT VALUE FOR komutunu kullanmanız gerekir. Örneğin: 

SELECT NEXT VALUE FOR contacts_seq;

  

Bu bir sonraki değeri contact_seq'den alacaktır. Bir sonraki ifadenin bir SQL ifadesinde kullanılması gerekir. Örneğin: 

INSERT INTO contacts
(contact_id, last_name)
VALUES
(NEXT VALUE FOR contacts_seq, 'Smith');

  

Bu INSERT ifadesi, rehber tablosuna yeni bir kayıt ekler. Contact_id alanına contact_seq dizisinden sonraki numara atanır. Son_adı alanı 'Smith' olarak ayarlandı.

İlginizi Çekebilir

Sonraki
« Önceki
Previous Article
Next Post »
Yorumlar
Yorumlar