Makale numarası: 273586 - Son Gözden Geçirme: 02 Kasım 2007 Cuma - Gözden geçirme: 4.2 SELECT INTO veya INSERT ile kullanıldığında IDENTITY işlevin davranışı ORDER BY yan tümcesi içeren bir SELECT sorgularını
Bu SayfadaÖzetIDENTITY işlevi ve ORDER BY yan tümcesi bir SELECT INTO sorgu kullandığınızda oluşturulan kimlik değerlerini ORDER BY yan tümcesi tarafından sağlanan sıra aynı sırada olmasını garanti edilmez. Örneğin, IDENTITY işlevi, bir tohum 1 ve 1'in bir artış ile başlatılırsa, sipariş edilen sonuç kümesindeki ilk satır 1'den farklı bir değer olabilir ve ikinci satır, %2 değerinden farklı bir değer olabilir ve beklediğiniz gibi forth.While sipariş görünebilir; böylece davranışı garanti edilmeyen. TOP veya SET ROWCOUNT sipariş satırları da garanti etmez. IDENTITY değerleri, ORDER BY yan tümcesinde sipariş izleyen sıralı biçimde atanmasını isterseniz, bir sütunu içeren bir KIMLIK özelliği ve ıNSERT'ı çalıştırmak için geçerli bir tablo oluşturun... Bu tablo doldurmak için … ORDER BY sorgusu SELECT. Daha fazla bilgiOluşturulan kimlik değerlerini GetIdentity() işlevi konumunu en iyi duruma getiricisi değişiklikleri nedeniyle, paralel sorgu planları veya TOP/SET ROWCOUNT varlığını değişebilir sorgu ağacında (showplan) bağlıdır. Senaryolarda, bir SELECT INTO bir IDENTITY işlevi ve ORDER BY yan tümcesi oluşturmak değerleri görebileceğiniz Bu davranış istediğiniz sipariş garanti edilmeyen ve hiçbir uyarıda bulunulmadan değişebilir. Aşağıdaki senaryolarda, bir SELECT INTO deyimi ve bir IDENTITY işlevi içerir. Aşağıdaki değerleri ile birlikte OldTable adlı bir tablo olarak düşünün. Col1 Col2 ------- -------- 1 A 11 F 7 G 17 I 2 Z Senaryo 1Bu senaryoda, SELECT INTO sorgu bir IDENTITY işlevi ve bir ORDER BY yan tümcesi. kullananYöntem 1Col1 Col2 ID ------- -------- -------- 1 A 4 2 Z 2 7 G 5 11 F 3 17 I 1 Yöntem 2Col1 Col2 ID ------- -------- ------- 1 A 1 2 Z 2 7 G 3 11 F 4 17 I 5 Senaryo 2TOP bir işleç veya bir SET ROWCOUNT ekstresi. aşağıdaki SELECT INTO sorgular IDENTITY işlevi ve ORDER BY yan tümcesi, kullanınYöntem 1Col1 Col2 ID ----- ----- ----- 1 A 2 2 Z 1 7 G 3 Yöntem 2Col1 Col2 ID ------ ------ ------ 1 A 1 2 Z 2 7 G 3 Yöntem 3Col1 Col2 ID ------ ------ ------ 1 A 4 2 Z 2 7 G 5 Aslında, IDENTITY işlevi doğru BAŞLANGıÇ ve ARTıŞ parametreleri temel alarak, kimlik değerleri oluşturur. Önce satırları ORDER BY yan tümcesi göre sıralanır, ancak kimlik değeri üretilmesine oluşur. Bu nedenle, bir TOP işletmen veya bir SET ROWCOUNT kullandığınızda deyimi, sonuç tablosunda (yenitablo) eklenen satır gibi yanlış kimlik değerlerine sahip. SQL Server'ı oluşturur kimlik değerlerini, ÇEKIRDEK ve ARTıM parametreleri IDENTITY işlevinin eşleşmeyebilir. Bir INSERT INTO SELECT FROM ORDER BY yan tümcesi ile ilgili bir örnek aşağıdadır. Aşağıdaki değerleri ile birlikte OldTable adlı bir tablo göz önünde bulundurun: Col1 Col2 ------- -------- 1 S 11 F 7 G 17 I 2 z Aşağıda, hedef tablonun yenitablo adlı (KIMLIĞI, kimlik sütunu olan) ID (identity) Col1 Col2 --------------- ------- ------ ORDER BY yan tümcesi ile birlikte aşağıdaki INSERT INTO SELECT FROM sorgu KIMLIĞI yenitabloSütun1 aynı sırada olduğundan bu sütun garanti. ID (identity) Col1 Col2 ------------- ------ ------ 1 1 S 2 2 z 3 7 G 4 11 F 5 17 I Not KIMLIĞI, kimlik sütunu Sütun1 olarak aynı sırası için oluşturulur. Ancak, INSERT INTO KIMLIĞI'ni veya Sütun1yenitablo içinde fiziksel sırasını garanti doesn’t. Istenen sırada veri almak için <a0></a0>, ORDER BY yan tümcesi SELECT deyimi aşağıdaki gibi gereklidir: Bu makaledeki bilginin uygulandığı durum:
Otomatik TercümeÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir. Makalenin İngilizcesi aşağıdaki gibidir:273586
(http://support.microsoft.com/kb/273586/en-us/
)
| Diğer Kaynaklar Diğer Destek Siteleri
ToplulukHemen Yardım AlMakale çevirileri
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Üste