Tôi có một trường để lưu trữ một số dữ liệu, trường được khai báo là varchar(max)
. Theo hiểu biết của tôi, điều này nên được lưu trữ các 2^31 - 1
ký tự nhưng khi tôi nhập một số nội dung hơn 8000 ký tự thì nó sẽ cắt phần còn lại.
Tôi đã xác minh rằng tất cả dữ liệu được bao gồm trong câu lệnh cập nhật của tôi và truy vấn có vẻ tốt ở mọi nơi khác nhưng khi tôi chọn dữ liệu trở lại thì nó đã bị cắt.
Dữ liệu bị cắt ngắn khi tôi hiển thị trên trang web của mình và cả khi tôi sử dụng SSMS select content from table
.
select DATALENGTH (content) from table
trở lại là 8000.
Tôi đặt dữ liệu bằng cách này : update table set content = 'my long content' where id = 1
. Nội dung có rất nhiều HTML nhưng tôi không thể thấy điều đó gây ra sự cố. Điều duy nhất tôi có thể thấy rằng tôi đang làm là thay thế tất cả "
bằng ''
vì đây là nội dung do người dùng nhập vào (không thể nhớ tại sao tôi lại làm vậy).
Tôi đã quản lý để có được nội dung nhập chính xác bằng cách xóa tất cả các trích dẫn trong nội dung để tôi nghĩ rằng có điều gì đó kỳ lạ đang xảy ra với dữ liệu của tôi chứ không phải cơ sở dữ liệu.
Tôi có nên làm điều gì đó đặc biệt với truy vấn để sử dụng một varchar(max)
trường không?
Sử dụng: SQL Server 2008 (10,50) 64 bit.