SQL Server:

Sorozat létrehozása

Sorozatot hozhat létre az SQL Serverben egy autonumber mező kezelésére.

Szintaktika

A szekvencia létrehozásának szintaxisa az SQL Serverben (Transact-SQL) a következő:

CREATE SEQUENCE sequence_name ;

AS adattípus Lehet BIGINT, INT, TINYINT, SMALLINT, DECIMAL vagy NUMERIC. Ha az adattípus nincs megadva, a szekvencia alapértelmezés szerint BIGINT adattípusú lesz. START WITH value A kezdőérték, amelyet a szekvencia kezdetben visszaad. INCREMENT BY value Lehet pozitív vagy negatív érték. Pozitív érték megadása esetén a szekvencia az értékek növekvő sorozata lesz. Negatív érték megadása esetén a szekvencia csökkenő értékek sorozata lesz. MINVALUE value A sorozathoz megengedett legkisebb érték. NO MINVALUE Azt jelenti, hogy a sorozathoz nincs minimális érték megadva. MAXVALUE érték A sorozathoz megengedett maximális érték. NO MAXVALUE Ez azt jelenti, hogy a sorozathoz nincs megadva maximális érték. CYCLE Azt jelenti, hogy a szekvencia újrakezdődik, ha a szekvencia befejeződött. NO CYCLE Azt jelenti, hogy a szekvencia hibát jelez, ha befejezte a szekvenciát. Nem kezdi újra a sorozatot. CACHE érték A szekvencia számok gyorsítótárba helyezése a lemez IO minimalizálása érdekében. NO CACHE Nem gyorsítótárazza a sorszámokat.

Példa

Nézzünk egy példát arra, hogyan hozhatunk létre egy szekvenciát az SQL Serverben (Transact-SQL).

Példa:

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

Ez egy contacts_seq nevű szekvenciaobjektumot hozna létre. Az első sorszám, amelyet használna, az 1, és minden további sorszám 1-gyel növekszik (azaz: 2,3,4,…}. A teljesítmény érdekében legfeljebb 10 értéket gyorsítótárba helyez. A maximális érték, ami a sorszám lehet, 99999, és a sorszám nem fog ciklikusan működni, ha elérte ezt a maximumot.

A CREATE SEQUENCE utasítást tehát a következőképpen egyszerűsítheti:

CREATE SEQUENCE contacts_seq START WITH 1 INCREMENT BY 1;

Most, miután létrehozott egy sorszámobjektumot egy autonumber mező szimulálására, foglalkozunk azzal, hogy hogyan kérhetünk le egy értéket ebből a sorszámobjektumból. A szekvencia-sorrendben következő érték lekérdezéséhez a NEXT VALUE FOR parancsot kell használnunk.

Példa:

SELECT NEXT VALUE FOR contacts_seq;

Ez a következő értéket kérné le a contacts_seq objektumból. A nextval utasítást egy SQL utasításban kell használni. Például:

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

Ez az INSERT utasítás új rekordot illesztene be a contacts táblába. A contact_id mezőhöz a következő számot rendelné a contacts_seq sorozatból. A last_name mezőt ‘Smith’-re állítaná be.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.