alter SIRASI (Transact-sql)

Sıra nesnelerinden bağımsız değişkenleri değiştirir. Sırası ile oluşturulmuşsa, cache sırasını değiştirme seçeneği, önbellek yeniden.

Dizileri nesneleri kullanılarak oluşturulan Sıra oluşturmak deyimi. Dizileri tamsayı değerler ve bir tamsayı döndürür herhangi bir veri türünde olabilir. SIRA alter deyimini kullanarak veri türü değiştirilemez. Veri türünü değiştirmek için açılan ve sıra nesnesi oluşturun.

Bir sıra belirtim göre sayısal değerler dizisi oluşturur, kullanıcı tanımlı şema bağımlı nesnesidir. Yeni değerler, sonraki değeri için işlevini çağırarak bir serisinden oluşturulur. Kullanım sp_sequence_get_range aynı anda birden fazla sıra numaraları almak için. Hem oluşturma SIRASI kullanan senaryolar ve bilgi için sp_sequence_get_rangeve görmek için sonraki değeri işlev Sıra numaraları.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

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 } ]
    [ ; ]

Bağımsız değişkenler

  • sequence_name
    Sıra tanındığı benzersiz bir ad veritabanını belirtir. Türü sysname.

  • YENİDEN [WITH <sürekli>
    Sıra nesne tarafından döndürülen sonraki değeri. Verdiyse, yeniden değerine sahip sıra nesne minimum değeri en yüksek ve daha büyük veya eşit eşit veya daha az bir tamsayı olmalıdır. WITH değeri, orijinal sıra oluşturma seçeneklerine göre yeniden numaralandırma sırasını atlanırsa.

  • ARTIŞ ile <sürekli>
    Artan (veya negatif ise eksiltme için) kullanılan değer sıra nesnesinin temel değeri her çağrı için sonraki değeri için işlevi. Artan sıra nesne azalan negatif bir değer ise, aksi takdirde, artan. Artış 0 olamaz.

  • MINVALUE<sürekli> | HİÇBİR MINVALUE]
    Sıra nesnesi için sınırları belirler. no MINVALUE belirtilirse, serisi veri türü minimum olası değeri kullanılır.

  • [MAXDEĞER <sürekli> | HİÇBİR MAXDEĞER
    Sıra nesnesi için sınırları belirler. no MAXDEĞER belirtilmezse, olası maksimum değerle sıra veri türü kullanılır.

  • DÖNGÜSÜ |NO CYCLE
    Bu özellik, sıra nesne veya en az değer (veya azalan sıra nesneleri için maksimum) yeniden minimum veya maksimum değeri aşıldığında bir istisna belirtir.

    [!NOT]

    Sonra Bisiklete sonraki değerdir minimum veya maksimum değil değeri başlangıç sırası.

  • [cache <sürekli> | ÖNBELLEK YOK]
    Sistem tabloları için oluşturulan değerler inat için gereken IOS sayısını en aza indirerek sıra nesneleri kullanan uygulamalar için performansı artırır.

    Önbellek davranış hakkında daha fazla bilgi için bkz: SIRA (Transact-sql) oluştur.

Açıklamalar

Dizileri nasıl oluşturulur ve sıra önbellek nasıl yönetileceğini hakkında daha fazla bilgi için bkz: SIRA (Transact-sql) oluştur.

MINVALUE dizileri ve sıralar Azalan için MAXDEĞER artan için başlangıç değerine sahip sıra izin vermeyen bir değer değiştirilemez. Artan bir sıra MINVALUE başlangıç değerinden daha büyük bir sayı olarak değiştirin veya azalan sıra MAXDEĞER başlangıç değerinden daha küçük bir sayıya değiştirmek için minimum ve maksimum aralığında kalan istenilen noktada sırasını yeniden yeniden ile değişken ekleyin.

Meta veri

Serileri hakkında daha fazla bilgi için sorgu sys.sequences.

Güvenlik

İzinler

Gerektirir alter sıra izni veya alter Şema izni. Vermek alter sırası, kullanma izni on object alter aşağıdaki biçimde:

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

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

Bir sıra nesnenin sahipliğini kullanarak transfer edilebilir alter YETKILENDIRME deyimi.

Denetim

Denetlenecek Sıra alter, monitör schema_object_change_group.

Örnekler

Sıraları oluşturma ve kullanma örnekleri Sonraki değer için sıra numaraları oluşturmak için bkz: işlev Sıra numaraları.

A.Bir sırasını değiştirme

Aşağıdaki örnek, adlı bir şema oluşturur Testve adında bir sıra TestSeqkullanarak intveri türü, bir aralık 0 ile 255 arasında olan. Sıra 125 ve aralıklarla tarafından 25 sayı üreten her zaman başlar. Çünkü sıra değeri 200, 100 asgari değere sırasını yeniden maksimum değeri aşarsa, geçiş yapmak için yapılandırın.

CREATE SCHEMA Test ;
GO

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

CREATE SCHEMA Test ;
GO

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

Aşağıdaki örnek değiştirir TestSeqbir aralığı 0 ile 255 arasında olan sıra. Sıra numara serisi 100 ve artışları ile sayı üreten her zaman 50 tarafından yeniden başlatır.

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

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

Sıra döngüsü değil çünkü Sonraki değeri için sıra 200 aştığında işlevi hatayla sonuçlanır.

B.Bir sıra yeniden

Aşağıdaki örnek, adlı bir sıra oluşturur CountBy1. Dizi varsayılan değerleri kullanır.

CREATE SEQUENCE Test.CountBy1 ;

CREATE SEQUENCE Test.CountBy1 ;

Bir dizi üretir sahibi sonra aşağıdaki deyimi yürütür:

SELECT NEXT VALUE FOR Test.CountBy1

SELECT NEXT VALUE FOR Test.CountBy1

-9,223,372,036,854,775,808 Döndürülen değeri en düşük olası değeri ise bigintveri türü. O 1'den başlamak üzere sıra istedim, ama değil işaret vermedi sahibi anlar START WITHo sıra oluşturduğunuzda yan. Bu hatayı düzeltmek için sahibi aşağıdaki deyimi yürütür.

ALTER SEQUENCE Test.CountBy1 RESTART WITH 1 ;

ALTER SEQUENCE Test.CountBy1 RESTART WITH 1 ;

Sonra sahibi tekrar bir sıra numarası oluşturmak için aşağıdaki deyimi yürütür.

SELECT NEXT VALUE FOR Test.CountBy1;

SELECT NEXT VALUE FOR Test.CountBy1;

Şimdi 1, beklendiği gibi sayısıdır.

CountBy1Sıra numarası 9,223,372,036,854,775,807 üreten sonra çalışma sona erecek varsayılan değer no döngüsü kullanılarak oluşturulan. Sonraki aramalar için sıra nesnesi hata 11728 döndürecektir. Aşağıdaki ifadeyi geçiş sırası nesneyi değiştirir ve önbellek 20 ayarlar.

ALTER SEQUENCE Test.CountBy1
    CYCLE
    CACHE 20 ;

ALTER SEQUENCE Test.CountBy1
    CYCLE
    CACHE 20 ;

Şimdi sıra nesnesi 9,223,372,036,854,775,807 geçiş yapar ve sonraki ulaştığında Bisiklete binme will be minimum veri sonra türü,-9,223,372,036,854,775,808.

Sahibi fark bigintveri türünü kullanan 8 bayt her zaman kullanιlιr. int4 Bayt kullanan veri türü yeterli. Ancak bir sıra nesnesi veri türü değiştirilemez. Değiştirmek için bir intveri türü, sahibi gerekir sıra nesne nesne doğru veri türüyle geçersiz.bırakma ve.

Ayrıca bkz.

Başvuru

SIRA (Transact-sql) oluştur

SIRA (Transact-sql) bırak

SONRAKİ değeri (Transact-sql)

sp_sequence_get_range (Transact-sql)

Kavramlar

Sıra numaraları