ID Artikel: 273586 - Kajian Terakhir: 22 September 2011 - Revisi: 2.0 Perilaku identitas fungsi bila digunakan dengan pilih ke atau masukkan. Pilih permintaan yang mengandung ORDER BY klausul
Pada Halaman iniRINGKASANKetika Anda menggunakan pilih ke query dengan IDENTITAS fungsi dan ORDER BY klausa, identitas nilai-nilai yang dihasilkan tidak dijamin untuk memiliki urutan yang sama seperti urutan yang disediakan oleh ORDER BY klausa. Sebagai contoh, jika IDENTITAS fungsi mulai dengan benih 1 dan kenaikan dari 1, baris pertama dalam set memerintahkan hasilnya bisa memiliki nilai yang berbeda dari 1, dan baris kedua mungkin memiliki nilai yang berbeda dari 2, dan sebagainya.Sementara pemesanan mungkin tampak seperti yang Anda harapkan, perilaku tidak dijamin. Kehadiran atas atau MENGATUR ROWCOUNT juga tidak menjamin urutan baris. Jika Anda ingin IDENTITAS nilai-nilai akan diberikan dengan cara yang berurutan yang mengikuti memesan di ORDER BY klausa, menciptakan tabel yang berisi kolom dengan IDENTITAS properti dan kemudian jalankan INSERT. PILIH... ORDER BY permintaan untuk mengisi tabel ini. INFORMASI LEBIH LANJUTIdentitas nilai-nilai yang dihasilkan tergantung pada posisi GetIdentity() fungsi dalam pohon permintaan (showplan), yang dapat berubah karena perubahan optimizer, permintaan paralel rencana atau kehadiran atas/SET ROWCOUNT. Sementara Anda mungkin melihat skenario di mana pilih ke dengan IDENTITAS fungsi dan ORDER BY klausul menghasilkan nilai-nilai dalam urutan yang Anda inginkan perilaku ini tidak dijamin dan dapat berubah tanpa peringatan. Skenario berikut melibatkan
Pilih ke pernyataan dan IDENTITAS fungsi. Mempertimbangkan meja yang bernama OldTable dengan nilai berikut. Col1 Col2 ------- -------- 1 A 11 F 7 G 17 I 2 Z Skenario 1Dalam skenario ini, pilih ke dalam query menggunakan identitas fungsi dan sebuah ORDER BY klausa.Metode 1Col1 Col2 ID ------- -------- -------- 1 A 4 2 Z 2 7 G 5 11 F 3 17 I 1 Metode 2Col1 Col2 ID ------- -------- ------- 1 A 1 2 Z 2 7 G 3 11 F 4 17 I 5 Skenario 2Berikut pilih ke dalam query menggunakan fungsi identitas dan ORDER BY klausa, dengan operator atas atau MENGATUR ROWCOUNT pernyataan.Metode 1Col1 Col2 ID ----- ----- ----- 1 A 2 2 Z 1 7 G 3 Metode 2Col1 Col2 ID ------ ------ ------ 1 A 1 2 Z 2 7 G 3 Metode 3Col1 Col2 ID ------ ------ ------ 1 A 4 2 Z 2 7 G 5 Sebenarnya, IDENTITAS fungsi menghasilkan identitas dengan benar berdasarkan nilai-nilai parameter benih dan kenaikan. Namun, generasi nilai identitas terjadi sebelum baris yang diurutkan berdasarkan ORDER BY klausa. Oleh karena itu, ketika Anda menggunakan operator atas atau MENGATUR ROWCOUNT pernyataan, baris yang dimasukkan ke dalam tabel resultan (NewTable) tampaknya memiliki nilai-nilai salah identitas. Nilai-nilai identitas SQL Server menghasilkan mungkin tidak cocok dengan parameter benih dan kenaikan IDENTITAS fungsi. Berikut adalah contoh yang melibatkan memasukkan ke dalam memilih dari dengan ORDER BY klausa. Pertimbangkan sebuah tabel yang bernama OldTable dengan nilai-nilai berikut: Col1 Col2 ------- -------- 1 S 11 F 7 G 17 I 2 z Berikut ini adalah tabel sasaran yang bernama NewTable (ID adalah identitas kolom) ID (identity) Col1 Col2 --------------- ------- ------ Masukkan ke pilih dari query berikut dengan sebuah ORDER BY klausa akan menjamin kolom ID di NewTable dalam urutan yang sama seperti Col1. ID (identity) Col1 Col2 ------------- ------ ------ 1 1 S 2 2 z 3 7 G 4 11 F 5 17 I Catatan Kolom identitas ID yang dihasilkan untuk memiliki urutan yang sama seperti Col1. Namun, masukkan ke tidak menjamin urutan fisik baik ID atau Col1 dalam NewTable. Untuk mengambil data dalam urutan yang diinginkan, ORDER BY klausul diperlukan seperti yang ditunjukkan oleh mengikuti pernyataan Pilih: Berlaku bagi:
Penerjemahan MesinPENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah. Klik disini untuk melihat versi Inggris dari artikel ini:273586
(http://support.microsoft.com/kb/273586/en-us/
)
| Sumber Lain Situs Pendukung Lain
KomunitasCari Bantuan SekarangTerjemahan Artikel
|






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


Kembali ke atas
