Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server
Detail
Atribut | Nilai |
---|---|
Nama Produk | SQL Server |
ID Peristiwa | 8632 |
Sumber Kejadian | MSSQLSERVER |
Komponen | SQLEngine |
Nama Simbolis | QUERY_EXPRESSION_TOO_COMPLEX |
Teks Pesan | Kesalahan internal: Batas layanan ekspresi telah tercapai. Silakan cari ekspresi yang berpotensi kompleks dalam kueri Anda, dan cobalah untuk menyederhanakannya. |
Penjelasan
Kesalahan 8632 muncul saat Anda menjalankan kueri di SQL Server yang berisi sejumlah besar pengidentifikasi dan konstanta dalam satu ekspresi. Pesan kesalahan seperti berikut ini dilaporkan kepada pengguna:
Server: Msg 8632, Tingkat 17, Status 2, Baris 1
Kesalahan internal: Batas layanan ekspresi telah tercapai. Silakan cari ekspresi yang berpotensi kompleks dalam kueri Anda, dan cobalah untuk menyederhanakannya.
Penyebab
Masalah ini terjadi karena SQL Server membatasi jumlah pengidentifikasi dan konstanta yang dapat dimuat dalam satu ekspresi kueri. Batas ini adalah 65.535. Misalnya, kueri berikut hanya memiliki satu ekspresi:
select a, b + c, d + e
Ekspresi ini mengambil kelima kolom, menghitung operator penambahan, dan mengirim tiga hasil yang diproyeksikan ke klien.
Pengujian untuk jumlah pengidentifikasi dan konstanta dilakukan setelah SQL Server memperluas semua pengidentifikasi dan konstanta yang direferensikan. Misalnya, item berikut dapat diperluas:
- Tanda bintang (*) dalam daftar pilih
- Tampilan
- Definisi kolom komputasi
Jika angka setelah ekspansi melebihi batas, kueri tidak dapat berjalan.
Tindakan pengguna
Untuk mengatasi masalah ini, tulis ulang kueri Anda. Mereferensikan lebih sedikit pengidentifikasi dan konstanta dalam ekspresi terbesar dalam kueri. Anda harus memastikan bahwa jumlah pengidentifikasi dan konstanta dalam setiap ekspresi kueri tidak melebihi batas. Untuk melakukan ini, Anda mungkin harus memecah kueri menjadi lebih dari satu kueri tunggal. Kemudian, buat hasil perantara sementara.