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ı.
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
sp_sequence_get_range (Transact-sql)