Kesalahan ini disebabkan karena Anda tidak dapat memiliki baris di SQL server yang lebih besar dari 8KB (ukuran 1 halaman) karena baris tidak diizinkan untuk menjangkau halaman - ini adalah batas dasar SQL Server, Anda dapat membaca lebih lanjut di sini:
Perhatikan bahwa SQL server akan memungkinkan Anda untuk membuat tabel, namun jika Anda mencoba untuk benar-benar memasukkan data apa pun yang mencakup beberapa halaman, maka itu akan memberikan kesalahan di atas.
Tentu saja ini tidak cukup, karena jika di atas adalah seluruh kebenaran maka satu VARCHAR(8000)
kolom akan mengisi satu baris dalam sebuah tabel! (Ini dulu kasusnya). SQL Server 2005 mengatasi batasan ini dengan mengizinkan data tertentu dari baris untuk disimpan di halaman lain, dan sebagai gantinya meninggalkan pointer 24-byte sebagai gantinya. Anda dapat membaca tentang ini di sini:
- Bagaimana Sql Server 2005 melewati baris 8KB batasan ukuran
- Ukuran Baris Maksimum di SQL Server 2005 hingga Batas
Seperti yang Anda lihat sekarang ini berarti bahwa baris sekarang dapat menjangkau beberapa halaman, namun baris kolom tunggal masih harus masuk ke dalam satu halaman (karenanya ukuran maksimum kolom adalah VARCHAR(8000)
) dan masih ada batasan jumlah kolom yang dapat Anda miliki (sekitar 8000 / 24 =~300 menurut perkiraan saya)
Tentu saja ini semua kehilangan poin utamanya, yaitu bahwa 400 kolom lebar pada satu meja tidak masuk akal!!!
Anda harus memperhatikan skema database Anda dan menemukan sesuatu yang lebih masuk akal - Anda bisa mulai dengan memilih beberapa perkiraan yang lebih konservatif pada ukuran kolom (seperti VARCHAR(255)
atau VARCHAR(50)
), tetapi Anda benar-benar perlu membagi beberapa bidang tersebut ke dalam tabel terpisah.