Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Var olan bir dizi nesnesinin bağımsız değişkenlerini değiştirir. Dizi seçeneğiyle CACHE oluşturulduysa, sıranın değiştirilmesi önbelleği yeniden oluşturur.
Sıralar nesneleri CREATE SEQUENCE deyimi kullanılarak oluşturulur. Sıralar tamsayı değerleridir ve tamsayı döndüren herhangi bir veri türünde olabilir. Veri türü deyimi kullanılarak ALTER SEQUENCE değiştirilemez. Veri türünü değiştirmek için dizi nesnesini bırakın ve oluşturun.
Sıra, belirtime göre sayısal değerler dizisi oluşturan kullanıcı tanımlı şema bağlı nesnesidir. İşlev çağrılarak NEXT VALUE FOR bir diziden yeni değerler oluşturulur. Aynı anda birden çok sıra numarası almak için kullanın sp_sequence_get_range . Hem , CREATE SEQUENCEhem de sp_sequence_get_rangeişlevini kullanan bilgi ve NEXT VALUE FOR senaryolar için bkz. Sıra Numaraları.
Transact-SQL söz dizimi 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şken
sequence_name
Dizinin veritabanında bilindiği benzersiz adı belirtir. türü sysname
RESTART [ <sabit> ]
Sıra nesnesi tarafından döndürülen sonraki değer. Sağlanırsa, RESTART WITH değer en büyük değerden küçük veya buna eşit ve sıra nesnesinin minimum değerinden büyük veya buna eşit bir tamsayı olmalıdır.
WITH Değer atlanırsa, sıra numaralandırması özgün CREATE SEQUENCE seçeneklere göre yeniden başlatılır.
<sabit> GÖRE ARTıRMA
İşleve yapılan her çağrı için sıra nesnesinin temel değerini artırmak (veya negatifse azaltma) için NEXT VALUE FOR kullanılan değer. Artış negatif bir değerse, sıralı nesne azalandır, aksi takdirde artandır. Artış 0 olamaz.
[ MINVALUE <sabit> | MINVALUE YOK ]
Sıralı nesnenin sınırlarını belirtir. belirtilirse NO MINVALUE , dizi veri türünün mümkün olan en düşük değeri kullanılır.
[ MAXVALUE <sabiti> | NO MAXVALUE ]
Sıralı nesnenin sınırlarını belirtir. belirtilirse NO MAXVALUE , dizi veri türünün mümkün olan en büyük değeri kullanılır.
[ DÖNGÜ | DÖNGÜ YOK ]
Bu özellik, sıra nesnesinin en düşük değerden (veya azalan sıra nesneleri için en yüksek değerden) yeniden başlatılıp başlatılmayacağını veya en düşük veya en yüksek değeri aşıldığında bir özel durum oluşturup oluşturmayacağını belirtir.
Not
Döngüden sonra bir sonraki değer, dizinin değil START VALUE en düşük veya en yüksek değerdir.
[ CACHE [ <sabit> ] | ÖNBELLEK YOK ]
Sistem tablolarında oluşturulan değerleri kalıcı hale getirmek için gereken IOS sayısını en aza indirerek sıralı nesneleri kullanan uygulamaların performansını artırır.
Önbelleğin davranışı hakkında daha fazla bilgi için bkz. CREATE SEQUENCE.
Açıklamalar
Dizilerin nasıl oluşturulduğu ve sıra önbelleğinin nasıl yönetildiğini öğrenmek için bkz. CREATE SEQUENCE.
MINVALUE Artan diziler için ve MAXVALUE azalan diziler için değeri, sıranın değerine izin START WITH vermeyen bir değerle değiştirilemez. Artan sıranın değerini değerinden MINVALUE büyük bir sayıya değiştirmek veya azalan bir sıranın değerinin daha küçük START WITH bir sayıyla değiştirilmesi MAXVALUE için, en düşük ve en büyük aralığın içinde kalan istenen bir noktada sırayı yeniden başlatmak için bağımsız değişkenini ekleyinSTART WITH.RESTART WITH
Meta veriler
Diziler hakkında bilgi için
İzinler
ALTER Dizi veya ALTER şema üzerinde izin gerektirir. Dizi üzerinde izin vermek ALTER için aşağıdaki biçimde kullanın ALTER ON OBJECT :
GRANT ALTER
ON OBJECT::Test.TinySeq TO [AdventureWorks\Larry];
Bir dizi nesnesinin sahipliği deyimi kullanılarak ALTER AUTHORIZATION aktarılabilir.
Denetim
denetlemek ALTER SEQUENCEiçin, öğesini SCHEMA_OBJECT_CHANGE_GROUPizleyin.
Örnekler
Hem dizi oluşturma hem de dizi numaraları oluşturmak için işlevini kullanma NEXT VALUE FOR örnekleri için bkz . Sıra Numaraları.
A. Sırayı değiştirme
Aşağıdaki örnek, 100 ile 200 arasında bir aralığa sahip int veri türünü kullanarak Test adlı bir şema ve TestSeq adlı bir dizi oluşturur. Sıra 125 ile başlar ve bir sayı her oluşturulduğunda 25 artar. Sıra döngüye göre yapılandırıldığından, değer en fazla 200 değerini aştığında, sıra en az 100 değerinde yeniden başlatılır.
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, TestSeq dizisini 50 ile 200 arasında bir aralığa sahip olacak şekilde değiştirir. Sıra, numaralandırma serisini 100 ile yeniden başlatır ve bir sayı oluşturulduğunda 50 artırır.
ALTER SEQUENCE Test.TestSeq
RESTART WITH 100
INCREMENT BY 50
MINVALUE 50
MAXVALUE 200
NO CYCLE
NO CACHE;
GO
Dizi döngü yapmadığından, NEXT VALUE FOR sıra 200'ü aştığında işlev hatayla sonuçlanır.
B. Bir diziyi yeniden başlatma
Aşağıdaki örnek adlı CountBy1bir dizi oluşturur. Dizi varsayılan değerleri kullanır.
CREATE SEQUENCE Test.CountBy1;
Bir dizi değeri oluşturmak için sahip aşağıdaki deyimi yürütür:
SELECT NEXT VALUE FOR Test.CountBy1;
-9.223.372.036.854.775.808 değeri, bigint veri türü için mümkün olan en düşük değerdir. Sahip, dizinin 1 ile başlamasını istediğini fark eder, ancak diziyi START WITH oluştururken yan tümcesini belirtmez. Bu hatayı düzeltmek için sahip aşağıdaki deyimi yürütür.
ALTER SEQUENCE Test.CountBy1
RESTART WITH 1;
Ardından sahip, bir sıra numarası oluşturmak için aşağıdaki deyimi yeniden yürütür.
SELECT NEXT VALUE FOR Test.CountBy1;
Sayı şu anda beklendiği gibi 1'dir.
CountBy1 9.223.372.036.854.775.807 sayısı oluşturulduktan sonra çalışmayı durduracak şekilde dizisi varsayılan değeri NO CYCLE kullanılarak oluşturulmuştur. Sıra nesnesine yapılan sonraki çağrılar 11728 hatasını döndürür. Aşağıdaki deyim, sıra nesnesini döngüye dönüştürür ve 20'lik bir önbellek ayarlar.
ALTER SEQUENCE Test.CountBy1
CYCLE
CACHE 20;
Artık sıra nesnesi 9.223.372.036.854.775.807'ye ulaştığında döngü yapılır ve döngüden sonraki sonraki sayı en düşük veri türü olan -9.223.372.036.854.775.808 olacaktır.
Sahip, bigint veri türünün her kullanıldığında 8 bayt kullandığını fark etti. 4 bayt kullanan int veri türü yeterlidir. Ancak bir sıralı nesnenin veri türü değiştirilemez. int veri türüne geçmek için, sahibin sıralı nesneyi bırakması ve nesneyi doğru veri türüyle yeniden oluşturması gerekir.
İlgili içerik
- CREATE SEQUENCE (Transact-SQL)
- DROP DIZISI (Transact-SQL)
- (Transact-SQLIÇIN SONRAKI DEĞER )
- sıra numaralarını
- sp_sequence_get_range (Transact-SQL)