SQL IMAGE Vs VARBINARY Datatype
The distinction between IMAGE
and VARBINARY
datatype will be discussed in this session.
SQL IMAGE Datatype
IMAGE is a binary data type with a variable length data type.
IMAGE has been deprecated and will be deprecated in a future SQL Server edition. Instead, use NVARCHAR
(Max).
Example: SQL IMAGE Datatype
DECLARE @x VARCHAR(100) = '';
DECLARE @a INT = 1
WHILE @a < 100
BEGIN
SET @x = @Vx + 'A'
SET @a = @a + 1
END
SET @x = @x + 'B'
SELECT @x
SELECT CONVERT(VARCHAR(100),CONVERT(IMAGE, @x));
Output: The Output will be
ERROR
Msg 529, Level 16, State 2, Line 11
SQL VARBINARY(N) Datatype
The VARBINARY (MAX
) data type is used to hold pictures, pdf, word, and other files, as well as any data.
The default length is 1 when N
is not given in a data definition or variable declaration statement. When the data is likely to be very large and vary in duration, use this type.
Example: Below example demonstrates Varbinary datatype
DECLARE @a VARCHAR(MAX)
SET @a = 'Govindaraj Kanniappan';
SELECT CAST(@a AS VARBINARY(MAX));
RESULT: The output will be
0x476F76696E646172616A204B616E6E6961707
0616E00000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000
SQL DIFFERENCE BETWEEN IMAGE AND VARBINARY DATATYPE
There are 6 main contrast in image & varbinary in below table:-
IMAGE | VARBINARY |
---|---|
The IMAGE variable is exclusively used to store image files . | The VARBINAR variable is used to store any type of data |
It uses one byte each character. | It uses one byte each character. |
(2147483647) 231-1 bytes is the maximum storage size -2 GB. | (2 GB). The storage capacity is equal to the length of the data entered plus two bytes. |
If an index is required , it cannot be built on the IMAGE data type. When we establish an index on this data type, it throws an exception error. | Even though an index is required, it cannot be constructed on the VARBINARY (MAX) data type. When we establish an index on this data type, it throws an exception error. |
When just storing image files, use the IMAGE data type. | Because the IMAGE data type will be discontinued in future editions of MS SQL Server, Microsoft recommends using VARBINARY(MAX) instead of IMAGE for storing huge amounts of data in a single column. |
Cast/Convert to IMAGE data type and vice versa is not possible. | We have the ability to convert IMAGE data types. |