Megosztás a következőn keresztül:


VÁLTOZÁSI SORREND (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Módosítja egy meglévő szekvenciaobjektum argumentumait. Ha a szekvencia ezzel a CACHE beállítással lett létrehozva, a sorozat módosítása újra létrehozza a gyorsítótárat.

A sorozatobjektumok a CREATE SEQUENCE utasítással hozhatók létre. A sorozatok egész számértékek, és bármilyen típusúak lehetnek, amelyek egész számokat adnak vissza. Az adattípus nem módosítható az ALTER SEQUENCE utasítás használatával. Az adattípus módosításához dobja el és hozza létre a szekvenciaobjektumot.

A szekvencia egy felhasználó által definiált séma által kötött objektum, amely a specifikációnak megfelelően numerikus értékek sorozatát hozza létre. A függvény meghívásával új értékek jönnek létre egy NEXT VALUE FOR sorozatból. Egyszerre több sorszám lekérésére használható sp_sequence_get_range . A függvényt CREATE SEQUENCEsp_sequence_get_rangeés a függvényt használó információkért és forgatókönyvekhez lásd: NEXT VALUE FORSorszámok.

Transact-SQL szintaxis konvenciói

Szintaxis

ALTER SEQUENCE [ schema_name. ] sequence_name
    [ RESTART [ WITH <constant> ] ]
    [ INCREMENT BY <constant> ]
    [ { MINVALUE <constant> } | { NO MINVALUE } ]
    [ { MAXVALUE <constant> } | { NO MAXVALUE } ]
    [ CYCLE | { NO CYCLE } ]
    [ { CACHE [ <constant> ] } | { NO CACHE } ]
[ ; ]

Érvek

sequence_name

Megadja azt az egyedi nevet, amellyel a sorozat ismert az adatbázisban. A típus sysname.

ÚJRAINDÍTÁS [ <állandó> ]

A sorozatobjektum által visszaadott következő érték. Ha meg van adva, az RESTART WITH értéknek olyan egész számnak kell lennie, amely kisebb vagy egyenlő a sorszámozási objektum maximális értékénél vagy annál nagyobb értékével. Ha az WITH érték nincs megadva, a sorszámozás az eredeti CREATE SEQUENCE beállítások alapján újraindul.

Növekmény <állandó>

A sorozatobjektum alapértékének növeléséhez (vagy negatív esetben csökkenő értékhez) használt érték a NEXT VALUE FOR függvény minden egyes hívásához. Ha a növekmény negatív érték, akkor a szekvenciaobjektum csökkenő, ellenkező esetben növekvő. A növekmény nem lehet 0.

[ MINVALUE <állandó> | NINCS MINVALUE ]

Megadja a szekvenciaobjektumok határait. Ha NO MINVALUE meg van adva, a rendszer a sorozat adattípusának minimális lehetséges értékét használja.

[ MAXVALUE <állandó> | NINCS MAXVALUE ]

Megadja a szekvenciaobjektumok határait. Ha NO MAXVALUE meg van adva, a rendszer a szekvencia adattípusának maximális lehetséges értékét használja.

[ CIKLUS | NINCS CIKLUS ]

Ez a tulajdonság azt határozza meg, hogy a szekvencia-objektumnak újra kell-e indulnia a minimális értékről (vagy a csökkenő sorrendű objektumok maximális értékéről), vagy kivételt jelezhet a minimális vagy maximális érték túllépésekor.

Jegyzet

A kerékpározás után a következő érték a minimális vagy a maximális érték, nem pedig a START VALUE sorrend.

[ CACHE [ <állandó> ] | NINCS GYORSÍTÓTÁR ]

A rendszertáblákban a generált értékek megőrzéséhez szükséges I/O-k számának minimalizálásával növeli a szekvenciaobjektumokat használó alkalmazások teljesítményét.

A gyorsítótár működésével kapcsolatos további információkért lásd: CREATE SEQUENCE.

Megjegyzések

A szekvenciák létrehozásáról és a szekvenciagyorsítótár kezeléséről a CREATE SEQUENCE című témakörben talál további információt.

A MINVALUE növekvő sorozatok és a MAXVALUE csökkenő sorozatok nem módosíthatók olyan értékre, amely nem teszi lehetővé a START WITH sorozat értékét. Ha egy MINVALUE növekvő sorozatot az értéknél START WITH nagyobb számra szeretne módosítani, vagy egy csökkenő sorozat értékét az értéknél MAXVALUE kisebb számra szeretné módosítaniSTART WITH, akkor az argumentummal RESTART WITH újraindíthatja a sorozatot egy olyan kívánt ponton, amely a minimális és a maximális tartományon belül esik.

Metaadatok

A sorozatokról további információt a sys.sequences lekérdezése.

Engedélyek

Engedélyre van szükség ALTER a séma sorozatához vagy ALTER engedélyéhez. A sorozat engedélyének megadásához ALTER használja ALTER ON OBJECT a következő formátumot:

GRANT ALTER
    ON OBJECT::Test.TinySeq TO [AdventureWorks\Larry];

A sorozatobjektum tulajdonjoga az utasítással ALTER AUTHORIZATION ruházható át.

Audit

A naplózáshoz ALTER SEQUENCEfigyelje a SCHEMA_OBJECT_CHANGE_GROUP.

Példák

A sorozatok létrehozására és a függvény sorszámok létrehozására való használatával kapcsolatos példákért tekintse meg a NEXT VALUE FORSorszámok című témakört.

Egy. Sorozat módosítása

Az alábbi példa létrehoz egy TestSeq nevű sémát és egy TestSeq nevű sorozatot a int adattípussal, amely 100 és 200 közötti tartományt biztosít. A sorozat 125-zel kezdődik, és minden szám létrehozásakor 25-zel növekszik. Mivel a sorozat ciklusra van konfigurálva, ha az érték meghaladja a 200-as maximális értéket, a sorozat a minimális 100-as értékkel indul újra.

CREATE SCHEMA Test;
GO

CREATE SEQUENCE Test.TestSeq
    AS INT
    START WITH 125
    INCREMENT BY 25
    MINVALUE 100
    MAXVALUE 200
    CYCLE
    CACHE 3;
GO

Az alábbi példa a TestSeq sorozatot 50 és 200 közötti tartományra módosítja. A sorozat újraindítja a számozási sorozatot 100-zal, és 50-zel növekszik minden alkalommal, amikor egy szám jön létre.

ALTER SEQUENCE Test.TestSeq
    RESTART WITH 100
    INCREMENT BY 50
    MINVALUE 50
    MAXVALUE 200
    NO CYCLE
    NO CACHE;
GO

Mivel a sorozat nem ciklus, a NEXT VALUE FOR függvény hibát eredményez, ha a sorozat meghaladja a 200-t.

B. Sorozat újraindítása

Az alábbi példa egy szekvenciát CountBy1hoz létre. A sorozat az alapértelmezett értékeket használja.

CREATE SEQUENCE Test.CountBy1;

Szekvenciaérték létrehozásához a tulajdonos végrehajtja a következő utasítást:

SELECT  NEXT VALUE FOR Test.CountBy1;

A -9.223.372.036.854.775.808 érték az bigint adattípus legkisebb lehetséges értéke. A tulajdonos rájön, hogy azt akarták, hogy a sorozat 1-zel kezdődjön, de nem jelezte a START WITH záradékot a sorozat létrehozásakor. A hiba kijavításához a tulajdonos végrehajtja a következő utasítást.

ALTER SEQUENCE Test.CountBy1
    RESTART WITH 1;

Ezután a tulajdonos ismét végrehajtja a következő utasítást egy sorszám létrehozásához.

SELECT  NEXT VALUE FOR Test.CountBy1;

A szám most 1, a vártnak megfelelően.

A CountBy1 sorozat az alapértelmezett érték NO CYCLE használatával lett létrehozva, így a 9 223 372 036 854 775 807-es szám generálása után leáll. A sorozatobjektum későbbi hívásai 11728-at ad vissza. Az alábbi utasítás ciklusra módosítja a szekvenciaobjektumot, és beállít egy 20-ás gyorsítótárat.

ALTER SEQUENCE Test.CountBy1
    CYCLE
    CACHE 20;

Most, amikor a sorozatobjektum eléri a 9 223 372 036 854 775 807-et, a következő szám a kerékpározás után a minimális adattípus lesz, -9 223 372 036 854 775 808.

A tulajdonos rájött, hogy a bigint adattípus minden használatkor 8 bájtot használ. A 4 bájtot használó adattípus elegendő. A sorozatobjektum adattípusa azonban nem módosítható. Ha int adattípusra szeretne váltani, a tulajdonosnak el kell dobnia a sorozatobjektumot, és újra létre kell hoznia az objektumot a megfelelő adattípussal.