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ı:
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
Ör:Bu da kısa kullanımı
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 .
Örneğin:
SQL Server'da (Transact-SQL) bir dizinin bırakılması(silmeyi) sözdizimi şöyledir:
Tüm sequences aşağıdaki gibi listeleyebiliriz.
Bu da listeleme sonucu
Ö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/
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 ];
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
Column | Explanation |
---|---|
name | Sequence name that was assigned in CREATE SEQUENCE statement |
object_id | Object ID |
principal_id | Owner of the sequence |
schema_id | Schema ID where the sequence was created |
parent_object_id | ID of the parent object |
type | SO |
type_desc | SEQUENCE_OBJECT |
create_date | Date/time when the sequence was created |
modify_date | Date/time when the sequence was last modified |
is_ms_shipped | 0 or 1 |
is_published | 0 or 1 |
is_schema_published | 0 or 1 |
start_value | Starting value for sequence |
increment | Value used to increment sequence |
minimum_value | Minimum value allowed for sequence |
maximum_value | Maximum value allowed for sequence |
is_cycling | 0 or 1. 0=NO CYCLE, 1=CYCLE |
is_cached | 0 or 1, 0=NO CACHE, 1=CACHE |
cache_size | Cache size if is_cached = 1 |
system_type_id | System type ID for sequence |
user_type_id | User type ID for sequence |
precision | Maximum precision for sequence's datatype |
scale | Maximum scale for sequence's datatype |
current_value | Last value returned by the sequence |
is_exhausted | 0 or 1. 0=More values available in sequence. 1=No values available in sequence |
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