2009-01-14 77 views

Trả lời

119

Vì hình ảnh không được chấp nhận, bạn nên sử dụng varbinary.

mỗi Microsoft(nhờ các liên kết @Christopher)

ntext, các loại văn bản, và dữ liệu hình ảnh sẽ được gỡ bỏ trong một phiên bản tương lai của Microsoft SQL Server. Tránh sử dụng các loại dữ liệu này trong tác phẩm phát triển mới và có kế hoạch sửa đổi các ứng dụng hiện đang sử dụng chúng. Sử dụng nvarchar (max), varchar (max), và varbinary (max) để thay thế.

Loại dữ liệu cố định và có độ dài thay đổi để lưu trữ lớn không phải Unicode và Ký tự Unicode và dữ liệu nhị phân. Dữ liệu Unicode sử dụng bộ ký tự UNICODE UCS-2 .

+10

http://msdn.microsoft.com/en-us/library/ms187993.aspx là một liên kết tốt hơn. –

+3

Tôi muốn biết thêm chi tiết về điều này. – cmsjr

+1

@ cmsjr: có thể vì như Microsoft nói: "loại dữ liệu hình ảnh sẽ bị xóa trong phiên bản tương lai của Microsoft SQL Server." – Ehsan

11

varbinary(max) là con đường để đi (giới thiệu trong SQL Server 2005)

8

Ngoài ra còn có các thay spiffy FileStream, được giới thiệu trong SQL Server 2008.

+0

spiffy: * thông minh xuất hiện *? – Liam

+0

'khá giả tạo' có ý nghĩa tổng quát hơn một chút (chỉ là 'lốm đốm') bằng tiếng mẹ đẻ phổ biến ... Hầu hết tôi nghĩ. – Grantly

+0

Câu hỏi này là về các định dạng cột và 'FileStream' chỉ là một hành vi lưu trữ. Filestream được thực hiện bằng cách sử dụng 'varbinary (max)' và thực hiện các thay đổi đối với cá thể máy chủ sql của bạn. – paqogomez

3

https://docs.microsoft.com/en-us/sql/t-sql/data-types/ntext-text-and-image-transact-sql

image

Dữ liệu nhị phân có độ dài thay đổi từ 0 đến 2^31-1 (2.147,483,647) byte. Tuy nhiên nó được hỗ trợ để sử dụng hình ảnh datatype, nhưng chú ý đến:

https://docs.microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql

varbinary [(n | max)]

Variable-length dữ liệu nhị phân. n có thể là giá trị từ 1 đến 8.000. max cho biết dung lượng lưu trữ tối đa là 2^31-1 byte. Kích thước bộ nhớ là độ dài thực tế của dữ liệu được nhập + 2 byte. Dữ liệu được nhập có thể là 0 byte ở độ dài . Từ đồng nghĩa SQL ANSI cho varbinary là nhị phân khác nhau.

Vì vậy, cả hai đều có kích thước bằng nhau (2GB). Nhưng chú ý đến:

https://docs.microsoft.com/en-us/sql/database-engine/deprecated-database-engine-features-in-sql-server-2016#features-not-supported-in-a-future-version-of-sql-server

Mặc dù phần cuối của "hình ảnh" datatype vẫn chưa được xác định, bạn nên sử dụng "tương lai" bằng chứng tương đương.

Nhưng bạn phải tự hỏi: tại sao lưu BLOBS trong cột?

https://docs.microsoft.com/en-us/sql/relational-databases/blob/compare-options-for-storing-blobs-sql-server

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