2009-12-20 27 views

Trả lời

19

Tính đến SQL Server 2005, TEXT/NTEXT/IMAGE đang bị phản đối -. Bạn nên sử dụng các kiểu dữ liệu (N)VARCHAR(MAX)VARBINARY(MAX) thay

(N) VARCHAR (MAX) (xem MSDN docs here) và VARBINARY (MAX) cho phép lên đến 2 Gbyte dữ liệu

Từ các tài liệu MSDN:

nvarchar [(n | max)]

Variable-length Unicode dữ liệu ký tự. n có thể là một giá trị từ 1 đến 4000. tối đa cho biết dung lượng lưu trữ tối đa là 2^31-1 byte. (= 2 GB)

The (N) VARCHAR (MAX) các loại cũng cho phép tất cả các chức năng chuỗi T-SQL bình thường để làm việc trên chúng - một cái gì đó không phải là trường hợp với (N) TEXT ở tất cả .

Như MSDN article shows này, các loại thay thế được hỗ trợ trong trigger, quá:

SQL Server 2008 không cho phép văn bản, ntext, hoặc hình ảnh cột tài liệu tham khảo trong chèn và xóa bảng cho các trình kích hoạt SAU. Tuy nhiên, các loại dữ liệu này chỉ được bao gồm cho mục đích tương thích ngược cho . Việc lưu trữ ưa thích dành cho dữ liệu lớn là sử dụng varchar (max), nvarchar (max)varbinary (max) dữ liệu loại. Cả hai SAU và thay vì gây hỗ trợ varchar (max), nvarchar (max), và varbinary (max) dữ liệu trong bảng chèn và xóa.

+0

hi marc, tuy nhiên, tôi hread rằng NVARCHAR MAX chỉ là 4000 ký tự trong unicode ... im không chắc chắn về NTEXT. im làm việc trên năm 2008 và nó seam làm việc tốt – DucDigital

+0

Có, NTEXT vẫn hỗ trợ trong năm 2008 - không chắc chắn về 2008 R2 mặc dù. Nó đang trên đường ra - thay thế nó ngay bây giờ. Sử dụng NVARCHAR (MAX), bạn cũng có thể sử dụng tất cả các hàm chuỗi bình thường trên trường của bạn - bạn không thể làm điều này trên NTEXT trong hầu hết các trường hợp. –

+1

http://sqltips.wordpress.com/2007/05/28/use-varcharmaxnvarcharmax-instead-of-text-ntext/ tôi đã tìm thấy trang này. Cảm ơn bạn marc – DucDigital

Các vấn đề liên quan