The following applies to Microsoft® SQL Server™ 7 and 2000
The total size of the row data must be less than 8060 bytes. You must reduce the size of the data being inserted or updated.
This error occurs when you attempt to insert/update a row in a table that has a maximum row size that is larger than Microsoft® SQL Server™ can store on a single data page. The error occurs because a row cannot be split across data pages. A data page is 8 KB in size and requires space for a page header. This leaves 8060 bytes to store one or more rows.
Note that the error will only be displayed when the total size of the data in the row is greater than 8060 bytes. If the size of the data in variable length fields does not exceed the page size the row will be inserted or updated without errors.
For example, if you created a table called Client using the following script
CREATE TABLE [dbo].[Client] ( [ClientID] [nchar] (2), [CoName] [nvarchar] (50), [Notes] [nvarchar] (4000), [Comments] [nvarchar] (4000), CONSTRAINT [PK_Client] PRIMARY KEY CLUSTERED ([ClientID]) ON [PRIMARY] ) ON [PRIMARY]
the following warning will be displayed
Warning: The table 'Client' has been created but its maximum row size (16131) exceeds the maximum number of bytes per row (8060). INSERT or UPDATE of a row in this table will fail if the resulting row length exceeds 8060 bytes.
If a row is inserted into the table that is larger than 8060 bytes;
INSERT INTO Client (ClientID, CoName, Notes, Comments) VALUES ('UK', 'United Kingdom', REPLICATE('m', 4000), REPLICATE('d', 4000))
the following error will be displayed
Server: Msg 511, Level 16, State 1, Line 2 Cannot create a row of size 16047 which is greater than the allowable maximum of 8060. The statement has been terminated.
The row has not been inserted
SELECT * FROM Client (0 row(s) affected)