CREATE TABLE NormalTest2 (
IDsample INT NOT NULL PRIMARY KEY REFERENCES Identification1(IDsample) IDENTITY(1,1),
NT VARBINARY(max) NOT NULL
and I use this stored procedure:
CREATE PROCEDURE uspInsertNTvb
INSERT INTO NormalTest2(NT) VALUES (@NT);
Using VARBINARY(max), the problem is that I insert only 128 bytes (128 hexadecimal numers) of 1600 bytes (1600 hexadecimal numers) that I try to put into. Instead the MSDN library says that I can use till 2^31-1 bytes. Here are the 128 hexadecimal numbers that I can insert only, which are represent from 256 characters:
0x07A7078908EA07E608F708A0071F ... EE0807070E07E5
So I try to change VARBINARY(max) to VARBINARY(1600) and to
VARBINARY(150), but the result is the same. If I put VARBINARY(100) I have only 100 hexadecimal numers.
binary [ ( n ) ]
Fixed-length binary data with a length of n bytes, where n is a value from 1 through 8,000. The storage size is n bytes.
varbinary [ ( n | max) ]
Variable-length binary data. n can be a value from 1 through 8,000. max indicates that the maximum storage size is 2^31-1 bytes. The storage size is the actual length of the data entered + 2 bytes. The data that is entered can be 0 bytes in length. The SQL-2003 synonym for varbinary is binary varying.
Remarks When n is not specified in a data definition or variable declaration statement, the default length is 1. When n is not specified with the CAST function, the default length is 30.
Use binary when the sizes of the column data entries are consistent.
Use varbinary when the sizes of the column data entries vary considerably.
Use varbinary(max) when the column data entries exceed 8,000 bytes.