Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement