LOGO

LOGO
LOGO
ads header

Breaking News

SEQUENCE ile kendimiz Otomatik Artan ya da Azalan Numara oluşturabiliriz.

Sequence nesnesi kısaca, otomatik artan ya da azalan numara, sayı dizisi olarak tanımlanır.

Oluşturması:


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 veri türü
BIGINT, INT, TINYINT, SMALLINT, DECIMAL veya NUMERIC olabilir. Veri türü belirtilmediyse, dizi bir BIGINT veri türü için varsayılan değer olacaktır.
BAŞLA BAŞLAT
Dizinin başlangıçta döndürdüğü başlangıç ​​değeri.
Değer bazında INCREMENT
Pozitif veya negatif bir değer olabilir. Pozitif bir değer belirtilirse, dizi artan bir değer dizisi olacaktır. Negatif bir değer belirtilirse, sıra azalan bir değer dizisi olacaktır.
MINVALUE değeri
Dizi için izin verilen minimum değer.
MINVALUE YOK
Bu, dizi için belirtilen minimum değer olmadığı anlamına gelir.
MAXVALUE değeri
Dizi için izin verilen maksimum değer.
NO MAXVALUE
Bu, dizi için belirtilen maksimum değerin olmadığı anlamına gelir.
ÇEVRİM
Sıralamayı tamamladıktan sonra dizinin başlayacağı anlamına gelir.
YOK CYCLE
Sıralamayı tamamladığında dizinin bir hata oluşturacağı anlamına gelir. Diziyi tekrar başlatmayacak.
CACHE değeri
Disk IO'yu en aza indirmek için sıra numaralarını önbelleğe alır.
HAYIR YOK
Sıra numaralarını önbelleğe almaz.

Örnek:Oluşturmak için

CREATE SEQUENCE contacts_seq
  AS BIGINT
  START WITH 1
  INCREMENT BY 1
  MINVALUE 1
  MAXVALUE 99999
  NO CYCLE
  CACHE 10;

Ör:Bu da kısa kullanımı

CREATE SEQUENCE contacts_seq
  START WITH 1
  INCREMENT BY 1;


Artık bir otomatik numara alanı simüle etmek için bir dizi nesnesi oluşturduğunuza göre, bu sıralama nesnesinden bir değerin nasıl alınacağını ele alacağız. Sıra sırasındaki bir sonraki değeri almak için NEXT VALUE FOR komutunu kullanmanız gerekir .


SELECT NEXT VALUE FOR contacts_seq;
Bu, bir sonraki değeri contact_seq'den alır . Nextval deyimi bir SQL deyiminde kullanılan gerekmektedir.
 Örneğin:

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



SQL Server'da (Transact-SQL) bir dizinin bırakılması(silmeyi) sözdizimi şöyledir:


DROP SEQUENCE sequence_name;
SQL Server'da (Transact-SQL) bir dizinin özelliklerini görüntülemek için sözdizimi şöyledir:
Tüm sequences aşağıdaki gibi listeleyebiliriz.

SELECT *
FROM sys.sequences
WHERE name = 'sequence_name';
Bizim tanımladığımızın değerini verilr
SELECT *
FROM sys.sequences
WHERE name = 'contacts_seq';

Bu da listeleme sonucu

ColumnExplanation
nameSequence name that was assigned in CREATE SEQUENCE statement
object_idObject ID
principal_idOwner of the sequence
schema_idSchema ID where the sequence was created
parent_object_idID of the parent object
typeSO
type_descSEQUENCE_OBJECT
create_dateDate/time when the sequence was created
modify_dateDate/time when the sequence was last modified
is_ms_shipped0 or 1
is_published0 or 1
is_schema_published0 or 1
start_valueStarting value for sequence
incrementValue used to increment sequence
minimum_valueMinimum value allowed for sequence
maximum_valueMaximum value allowed for sequence
is_cycling0 or 1. 0=NO CYCLE, 1=CYCLE
is_cached0 or 1, 0=NO CACHE, 1=CACHE
cache_sizeCache size if is_cached = 1
system_type_idSystem type ID for sequence
user_type_idUser type ID for sequence
precisionMaximum precision for sequence's datatype
scaleMaximum scale for sequence's datatype
current_valueLast value returned by the sequence
is_exhausted0 or 1. 0=More values available in sequence. 1=No values available in sequence
Örnek Makaleler:

https://www.techonthenet.com/sql_server/sequences.php

http://zarez.net/?p=2745    http://zarez.net/?p=2740


https://tuncayuyar.wordpress.com/2014/03/21/sequence-dizilis-sira-sekans/

http://www.veritabani.gen.tr/2017/01/27/sequence-nedir-nasil-olusturulur/









Hiç yorum yok