Chào các bạn,
“allow updates” là một option thảm họa trong Microsoft SQL 2005 trở về trước. Tại sao mình nói như thế ?
Cách đây khoản 4 năm, khi còn sử dụng SQL2000 và 2005 mình có biết một anh bạn đồng nghiệp, anh ta thiết kế Table có một column chiều dài bằng nvarchar(100). Sau này vì nhu cầu sử dụng nên column này phải dài bằng 200. Rất nhiều table và column cần phải sửa lại length của field này. Thay vì dùng Script Alter table, anh ta lại update length trực tiếp vào sys.columns vì option “allow updates” được bật lên nên user có thể cập nhật thẳng vào các table hệ thống, trong khi đó việc constraint giữa các table trong hệ thống không có.
Kết quả là thỉnh thoảng khi select dữ liệu đến những column đã sửa length thường xảy ra lỗi và server treo cứng hoàn toàn:
Buffer provided to read column value is too small
=> Kết luận : Nếu ai đã từng bị lỗi này thì nên tạo database mới, chuyển dần cấu trúc và dữ liệu qua Database mới
Mình làm ứng dụng nhỏ sql server 2000 vẫn đủ dùng. Hôm nay đọc bài viết này thêm kinh nghiệm xử lý nếu tình huống này xảy ra. Cảm ơn bạn