Categories: SQL Server

SQL Server 2012 New Feature – Sequence Numbers

Coba sedikit explorasi dengan sequence number di SQL Server 2012. Para developer mungkin tidak asing identity column pada saat kita akan membuat sebuah field pada sebuah column di sebuah table. dimana pada column tersebut kita bisa setup sebuah nilai identity column dan nilai increment nya.

Namun itu hanya berlaku pada 1 buah tabel, nah sekarang bagaimana caranya agar nilai yang berurut tersebut bisa kita sebar di beberapa tabel namun ? disini lah fungsi dari fitur Sequence Number dapat berperan.

Type data dari Sequence Number dapat diterapkan pada semua jenis data integer, namun jika sebuah sequence tidak di deklarasikan tipe datanya maka secara default dia akan memiliki type data BigInt.

Sebuah sequence Number memiliki ruang urutan mulai dari -2,147,483,648 sampai dengan 2,147,483,647. Jadi jika kita akan membuat Sequence Number yang memiliki pertambahan nilai 1 mulai dari -2,147,483,648 sampai dengan 2,147,483,647 dapat dibuat dengan cara

CREATE SEQUENCE Schema.SequenceName    
AS int    
INCREMENT BY 1 ;

jika kita akan membuat Sequence Number yang memiliki pertambahan nilai 1 mulai dari 1 sampai dengan 2,147,483,647 dapat dibuat dengan cara

CREATE SEQUENCE Schema.SequenceName
    AS int    
START WITH 1    
INCREMENT BY 1 ;

untuk lebih memperjelas penjelasan diatas, mari kita sama2 melakukan eksperimen dibawah ini.

Pertama yang kita lakukan adalah menentukan schema mana yang akan diterapkan Sequence Number. Misal saya akan gunakan database AdventureWorks2012 dengan schema TestSN. karena scehma TestSN tidak ada di database tersebut, maka saya bikin baru

Use AdventureWorks2012 ;
Go 
CREATE SCHEMA TestSN ;  
GO

setelah itu kita membuat Sequence Numbernya didalam Schema tersebut yang saya beri nama UrutTmbh1

Create SEQUENCE TestSN.UrutTmbh1
 AS INT    
START WITH 10000     
INCREMENT BY 1;
Go

anda dapat mencek nya hasil pembuatan sequence tersebut di Database AdventureWork2012 seperti gambar berikut

Saya akan coba terapkan Sequence ini pada 2 buah tabel. Saya coba buat 2 tabel contoh dulu

CREATE TABLE Employees(
    EmployeeId INT NOT NULL PRIMARY KEY,
    Name NVARCHAR(255) NULL);
Go
CREATE TABLE Contractors(
    ContractorId INT NOT NULL PRIMARY KEY,
    Name NVARCHAR(255) NULL);
Go

Setelah tabel diatas tercipta, mari kita masukkan 1 buah data masing-masing pada tabel tersebut dengan cara berikut :

INSERT INTO Employees (EmployeeId, Name)
   VALUES (NEXT VALUE FOR TestSN.UrutTmbh1, 'Jane');
Go

INSERT INTO Contractors (ContractorId, Name)
   VALUES (NEXT VALUE FOR TestSN.UrutTmbh1, 'John');
Go

Tampak bahwa saya untuk memasukkan nilai EmployeeId pada tabel Employees dengan menggunakan klausa NEXT VALUE FOR. Bgitu juga dengan field Contractor Id pada table Contractor.

Jika kita coba lihat hasilnya adalah seperti berikut :

Tampak terbentuk sebuah urutan angka (Sequence number) pada 2 field yang berbeda dan berbeda tabel juga.

Demikian semoga dapat dipahami dan bermanfaat.

 

admin

View Comments

Recent Posts

Workshop GIS di PT. AIR MINUM INTAN BANJAR (PERSERODA)

Alhamdulillah telah dipercaya untuk memberikan workshop GIS dengan menggunakan perangkat lunak QGIS di PT. AIR…

1 year ago

Workshop GIS di PERUMDA AM Tirta Ratu Samban

Terimakasih atas kepercayaannya kepada kami sehingga terselenggara Workshop QGIS utk PERUMDA AM Tirta Ratu Samba…

1 year ago

Workshop QGIS Online di Tirta Kahuripan

terimakasih atas kepercayaan Perumda Tirta Kahuripan Kab Bogor kepada saya utk mengimplementasikan GIS Online yang…

1 year ago

Digitasi Vector Menggunakan Spesific Length, Angles or Coordinates

Para operator #GIS kadang mendapatkan sebuah gambar situasi yang diperoleh dari kondisi dilapangan yang kemudian…

2 years ago

Video Seri Belajar Snapping di QGIS

Snapping di QGIS. teknik ini sifatnya wajib untuk dikuasai oleh para operator QGIS dalam kegiatan…

2 years ago

Video Seri Belajar EPANET

Epanet (Environmental Protection Agency Network ) adalah sebuah program komputer yang memiliki kemampuan melaksanakan simulasi…

2 years ago