Trường dữ liệu SQL Server 2008 có thể chứa bao nhiêu ký tự khi kiểu dữ liệu là VARCHAR (MAX)?Có bao nhiêu ký tự trong varchar (tối đa)
Trả lời
Từ http://msdn.microsoft.com/en-us/library/ms176089.aspx
varchar [(n | max)] Variable-length, không ký tự Unicode dữ liệu. n có thể là một giá trị từ 1 đến 8.000. tối đa cho biết rằng kích thước bộ nhớ tối đa là 2^31-1 byte. Kích thước lưu trữ là độ dài thực tế của dữ liệu được nhập + 2 byte. Dữ liệu được nhập có thể dài 0 ký tự. Từ đồng nghĩa ISO cho varchar là char thay đổi hoặc nhân vật khác nhau.
1 ký tự = 1 byte. Và đừng quên 2 byte cho việc chấm dứt. Vì vậy, 2^31-3 ký tự.
Xem MSDN reference table for maximum numbers/sizes.
Bytes mỗi varchar (max), varbinary (max), xml, văn bản hoặc hình ảnh cột: 2^31-1
Có một overhead hai byte cho cột, vì vậy dữ liệu thực tế có chiều dài tối đa là 2^31-3 byte. Giả sử bạn đang sử dụng mã hóa ký tự một byte, tổng cộng là 2^31-3 ký tự. (Nếu bạn đang sử dụng mã hóa ký tự sử dụng nhiều hơn một byte cho mỗi ký tự, chia cho tổng số byte cho mỗi ký tự. Nếu bạn đang sử dụng mã hóa ký tự có độ dài thay đổi, tất cả các cược sẽ tắt.)
đối với độc giả trong tương lai, những người cần câu trả lời này một cách nhanh chóng:
2^31-1 = 2.147.483.647 ký tự
về mặt kỹ thuật, 1 ký tự = 1 byte chỉ cho bảng mã ký tự nhất định. – Amber
Ah đúng. Chuỗi DBCS, ví dụ: sẽ cung cấp cho bạn ít hơn. Vì vậy, xem ra cho điều đó. –
@Dav, yeah đó cũng là một trong những cân nhắc của tôi. Tuy nhiên do số lượng byte có sẵn, điều này sẽ đáp ứng nhu cầu của tôi đối với kịch bản này. – Russell