01/10/2018, 17:00
Vấn đề sql server
Xin chào mọi người,
Hôm nay mình có tạo 1 table với hơn 200columns khi tạo thành công nhưng được nhận thông báo sau
“Warning: The table “XXX” has been created, but its maximum row size exceeds the allowed maximum of 8060 bytes. INSERT or UPDATE to this table will fail if the resulting row exceeds the size limit.”
Xin hỏi có bị vấn đề gì khi sử dụng không. Mình dùng sqlsv 2012
Xin cảm ơn mọi người.
Bài liên quan
mình không biết cách giải quyết, chỉ giải thích thôi.
bạn đụng tới max của database luôn rồi.
dẫn tới sẽ không lưu được data khi lưu vào bảng đó.
SQL Server thông báo cho bạn tổng số bytes tối đa sau khi tính được từ tổng các bytes tối đa từ các column lớn hơn 8060. 8060 là tổng số bytes là 1 row có thể chứa được mà SQL Server vẫn đảm bảo performance.
Nếu table của bạn có column kiểu varchar thì row size lúc insert sẽ nhỏ hơn row size tối đa, nếu <= 8060 thì insert thành công. Ngược lại, nếu row size > 8060, bạn nhận được thông báo lỗi.
Ví dụ cho bạn dễ hình dung:
Lúc insert, bạn chỉ nhập đúng có 20 kí tự cho từng column, vì vậy row size lúc insert như sau:
Trường hợp khác, nếu 40 columns nhập 70 kí tự, 60 columns còn lại nhập 100 kí tự.
row size sẽ là: (70 * 1) * 40 + (100 * 1) * 60 = 2800 + 6000 = 8800 > 8060
Lúc này insert không được và SQL Server báo lỗi.