Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Tidak dapat membuat baris dengan ukuran 8937 yang lebih besar dari batas maksimum yang diizinkan yaitu 8060

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:

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara terbaik untuk melakukan logika pernyataan kasus bersarang di SQL Server

  2. SQL Server ROWLOCK melalui SELECT jika tidak ada transaksi INSERT

  3. Konversi Tanggal ke Zona Waktu Lain di SQL Server

  4. Internal dari Tujuh Jenis SQL Server – Bagian 2

  5. Ambil definisi kolom untuk kumpulan hasil prosedur tersimpan