Maximum row size exceeds error

What does this mean. Could someone explain what needs to be done here

The table 'Table Name' has been created but its maximum row size (29682) 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.
rgarimellaAsked:
Who is Participating?
 
RiteshShahCommented:
yes, but are you sure, you would need these much big data in one table? can't you split it in few tables with primary key and foreign key?
0
 
RiteshShahCommented:
you can't have bigger row than 8KB, you might have very big fields in your table.
0
 
RiteshShahCommented:
it's a warning as if you enter the data at the full capicity you have defined in your table, but if actual data you will enter, won't have big size than 8060 KB than you don't need to worry about but there could be a case when user might enter more data so I would insist, decrease the limit of your field in table.
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

 
rgarimellaAuthor Commented:
I dont have any field more than 8K

How many of these fields can I have

[progInstr] [text]
0
 
RiteshShahCommented:
I am talking about total of all fields you have in table, One row shouldn't be greater than 8060. can you show me your table structure?
0
 
rgarimellaAuthor Commented:

CREATE TABLE [dbo].[F_SB] (
	[sbId] [int] IDENTITY (1, 1) NOT NULL ,
	[courseId] [int] NULL ,
	[lessonId] [int] NULL ,
	[topicId] [int] NULL ,
	[formatId] [int] NULL ,
	[qTypeId] [int] NULL ,
	[grSizeId] [int] NULL ,
	[grPosId] [int] NULL ,
	[templateId] [int] NULL ,
	[UIid] [int] NULL ,
	[reviewsbNum] [varchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[sbNumber] [varchar] (13) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
	[next] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[back] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[pageTitle] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
	[content] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[TwoColumnHeader1] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[TwoColumnHeader2] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[TwoColumnText1] [varchar] (5000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[TwoColumnText2] [varchar] (5000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[s_multiStep] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[MultiStepHeader1] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[MultiStepHeader2] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[MultiStepHeader3] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[MultiStepHeader4] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[MultiStepText1] [varchar] (5000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[MultiStepText2] [varchar] (5000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[MultiStepText3] [varchar] (5000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[MultiStepText4] [varchar] (5000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[readReflect] [varchar] (8000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[audioFileName] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[audioScript] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[inGrpFileName] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[grpDesc] [varchar] (250) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[longDesc] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[qDist] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[distractor1] [varchar] (2000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[distractor2] [varchar] (2000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[distractor3] [varchar] (2000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[distractor4] [varchar] (2000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[distractor5] [varchar] (2000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[distractor6] [varchar] (2000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[distractor7] [varchar] (2000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[distractor8] [varchar] (2000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[distractor9] [varchar] (2000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[distractor10] [varchar] (2000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[columnHeader1] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[columnHeader2] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[columnHeader3] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[noTries] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[correctAnswer] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[correctAnswer1] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[caFeedback] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[FstFeedback] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[sCndFeedback] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[graphicInstr] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[progInstr] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[date] [datetime] NULL ,
	[overwriteFile] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[scorequiz] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[includepageno] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
	[samepageno] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

Open in new window

0
 
RiteshShahCommented:
you have so many fields with big size and ultimately your are crossing limit of 8KB. actually SQL Server stores every raw in 8KB page, and if anybody will insert data which is crossing 8KB limit than how SQL will store that row in 8KB page? as long as user will enter less data than 8KB in your table, you won't face any problem but there will be a case that user can enter more data than 8KB in one row as you have allowed with high limit.
0
 
RiteshShahCommented:
if there is a real case of entering so much text than go for TEXT for everything or BLOB
0
 
rgarimellaAuthor Commented:
So basically you are asking me to change varchars to text right?
0
 
rgarimellaAuthor Commented:
I dont want to change the architecture at this time, so I will modify the tables

thx
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.