KB2800797-memperbaiki: hasil yang salah ketika Anda menjalankan kueri gabungan penuh yang menggunakan klausul TERAPKAN silang di SQL Server 2008 R2 atau di SQL Server 2012

Microsoft mendistribusikan perbaikan Microsoft SQL Server 2008 R2 Service Pack 2 (SP2) sebagai satu file yang dapat diunduh. Karena perbaikan bersifat kumulatif, setiap Edaran baru berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan rilis perbaikan SQL Server 2008 R2 Service Pack 2 sebelumnya.

Gejala

Anda mungkin menerima hasil yang salah ketika menjalankan kueri di Microsoft SQL Server 2008 R2 SP2 atau di Microsoft SQL Server 2012 jika kondisi berikut ini benar:

  • Kueri menggunakan klausul umpan silang atas hasil klausul Join lengkap .

  • Data tabel disediakan dengan memanggil fungsi Valued tabel yang ditentukan pengguna dalam klausa Join lengkap .

  • Fungsi ini menerima nama kolom sebagai parameter, dan mengembalikan hasil sebagai tabel.

Misalnya, Anda menjalankan kueri yang menyerupai berikut ini:

SELECT * FROM tablename CROSS APPLY (    SELECT * FROM        (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'New') s1     FULL JOIN         (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'Old') s2     ON s1.nodeName = s2.nodeName    ) s  

Catatan Masalah ini tidak terjadi di Microsoft SQL Server 2012.

Pemecahan Masalah

Informasi pembaruan kumulatif

Pembaruan kumulatif 7 untuk SQL Server 2012

Perbaikan untuk masalah ini pertama kali dirilis dalam pembaruan kumulatif 7. Untuk informasi selengkapnya tentang cara mendapatkan paket pembaruan kumulatif ini untuk SQL Server 2012, klik nomor artikel berikut ini untuk menampilkan artikel di Basis Pengetahuan Microsoft:

2823247 Paket pembaruan kumulatif 7 untuk SQL Server 2012Catatan Karena Build bersifat kumulatif, setiap rilis perbaikan baru berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan rilis perbaikan SQL Server 2012 sebelumnya. Kami menyarankan agar Anda mempertimbangkan untuk menerapkan rilis perbaikan terbaru yang berisi hotfix ini. Untuk informasi selengkapnya, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:

2692828 Build 2012 SQL Server yang dirilis setelah SQL Server 2012 dirilis

Pembaruan kumulatif 3 untuk SQL Server 2012 SP1

Perbaikan untuk masalah ini pertama kali dirilis dalam pembaruan kumulatif 3. Untuk informasi selengkapnya tentang cara mendapatkan paket pembaruan kumulatif ini untuk SQL Server 2012 SP1, klik nomor artikel berikut ini untuk menampilkan artikel di Basis Pengetahuan Microsoft:

2812412 Paket pembaruan kumulatif 3 untuk SQL Server 2012 Paket Layanan 1Catatan Karena Build bersifat kumulatif, setiap rilis perbaikan baru berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan rilis perbaikan SQL Server 2012 SP1 sebelumnya. Kami menyarankan agar Anda mempertimbangkan untuk menerapkan rilis perbaikan terbaru yang berisi hotfix ini. Untuk informasi selengkapnya, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:

2772858 Build 2012 SQL Server yang dirilis setelah SQL Server 2012 Service Pack 1 dirilis

Pembaruan kumulatif 5 untuk SQL Server 2008 R2 SP2

Perbaikan untuk masalah ini pertama kali dirilis dalam pembaruan kumulatif 5. Untuk informasi selengkapnya tentang cara mendapatkan paket pembaruan kumulatif ini untuk SQL Server 2008 R2 SP 2, klik nomor artikel berikut ini untuk menampilkan artikel di Basis Pengetahuan Microsoft:

2797460 Paket pembaruan kumulatif 5 untuk SQL Server 2008 R2 Service Pack 2Catatan Karena Build bersifat kumulatif, setiap rilis perbaikan baru berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan rilis perbaikan SQL Server 2008 R2 SP 2 sebelumnya. Kami menyarankan agar Anda mempertimbangkan untuk menerapkan rilis perbaikan terbaru yang berisi hotfix ini. Untuk informasi selengkapnya, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:

2730301 Build SQL Server 2008 R2 yang dirilis setelah SQL Server 2008 R2 Service Pack 2 dirilis

Status

Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".

Penyelesaian Masalah

Untuk mengatasi masalah ini, gunakan klausa Gabung gabungan penuh dan bukan klausa Join lengkap . Misalnya, Anda mengubah kueri yang disebutkan di bagian "gejala" untuk kueri yang menyerupai berikut ini:

SELECT * FROM tablename CROSS APPLY (    SELECT * FROM        (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'New') s1     FULL MERGE JOIN         (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'Old') s2     ON s1.nodeName = s2.nodeName    ) s 

Informasi Selengkapnya

Untuk informasi selengkapnya tentang cara menggunakan klausul Terapkan silang , kunjungi situs web Microsoft TechNet berikut:

Informasi umum tentang cara menggunakan klausul TERAPKAN silang

Perlu bantuan lainnya?

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung Microsoft Insider

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×