-- relates to this DBA.StackExchange answer: http://dba.stackexchange.com/questions/110813/8kb-row-size-limits-ignored-but-only-sometimes/110834#110834 -- DDL to create the table used below is found in that answer. Run that first. DECLARE @Bob VARBINARY(MAX) = CONVERT(VARBINARY(MAX), REPLICATE(CONVERT(VARCHAR(MAX), 'A'), 22)); -- all 3 INSERTs work! --DECLARE @Bob VARBINARY(MAX) = CONVERT(VARBINARY(MAX), REPLICATE(CONVERT(VARCHAR(MAX), 'A'), 24)); -- all 3 INSERTs fail. --DECLARE @Bob VARBINARY(MAX) = CONVERT(VARBINARY(MAX), REPLICATE(CONVERT(VARCHAR(MAX), 'A'), 30)); -- all 3 INSERTs fail. --DECLARE @Bob VARBINARY(MAX) = CONVERT(VARBINARY(MAX), REPLICATE(CONVERT(VARCHAR(MAX), 'A'), 9000)); -- all 3 INSERTs fail. SELECT DATALENGTH(@Bob); INSERT INTO dbo.test VALUES ( NEWID(), NEWID(), -- UNIQUEIDENTIFIER cols: 16 bytes each, even when NULL (without SPARSE or COMPRESSION) GETDATE(), GETDATE(), -- DATETIME cols: 8 bytes each, even when NULL (without SPARSE or COMPRESSION) @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob ); -- Msg 511, Level 16, State 1, Line 22 -- Cannot create a row of size 8391 which is greater than the allowable maximum row size of 8060. INSERT INTO dbo.test VALUES ( NULL, NULL, -- UNIQUEIDENTIFIER cols: 16 bytes each, even when NULL (without SPARSE or COMPRESSION) NULL, NULL, -- DATETIME cols: 8 bytes each, even when NULL (without SPARSE or COMPRESSION) @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob ); -- Msg 511, Level 16, State 1, Line 62 -- Cannot create a row of size 8391 which is greater than the allowable maximum row size of 8060. INSERT INTO dbo.test VALUES ( NULL, NULL, -- UNIQUEIDENTIFIER cols: 16 bytes each, even when NULL (without SPARSE or COMPRESSION) NULL, NULL, -- DATETIME cols: 8 bytes each, even when NULL (without SPARSE or COMPRESSION) NULL, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, -- First VARBINARY col is NULL, taking up no space @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob, @Bob ); -- Msg 511, Level 16, State 1, Line 102 -- Cannot create a row of size 8367 which is greater than the allowable maximum row size of 8060. -- Changing 1 VARBINARY(MAX) to NULL reduced size by 24 bytes