In attempting to alter an SQL Server table adding DATE and FLOAT columns. I get a message:
Warning: The table "CustomerTransactions" has been created, but its maximum row size exceeds the allowed maximum of 8060 bytes. INSERT or UPDATE to this table will fail if the resulting row exceeds the size limit.
I'm aware of the 8K limit, I'm stumped however, because the table does NOT exceed 8K.
The DDL and breakdowns are pasted below. Not sure where to look further. Any suggestion?
ALTER Table:
ALTER TABLE [dbo].[CustomerTransactions]
ADD
NumericDate FLOAT,
FirstDayOfWeek DATE,
LastDayOfWeek DATE,
NFirstDayOfWeek FLOAT,
NLastDayOfWeek FLOAT,
FirstDayOfMonth DATE,
LastDayOfMonth DATE,
NFirstDayOfMonth FLOAT,
NLastDayOfMonth FLOAT,
HalfMonthStart DATE,
HalfMonthEnd DATE,
NHalfMonthStart FLOAT,
NHalfMonthEnd FLOAT,
HalfOfMonth INT,
FirstDayOfQuarter DATE,
LastDayOfQuarter DATE,
NFirstDayOfQuarter FLOAT,
NLastDayOfQuarter FLOAT,
FirstDayOfYear DATE,
LastDayOfYear DATE,
NFirstDayOfYear FLOAT,
NLastDayOfYear FLOAT
syscolumns total
select count(*) NumCols, SUM(sc.length) SumLength
from syscolumns sc
inner join systypes st on sc.xtype = st.xtype
where id = object_id('CustomerTransactions')
NumCols SumLength
------- ---------
64 4463
syscolumns breakdown
select sc.name, st.name, sc.length
from syscolumns sc
left join systypes st
on sc.xtype = st.xtype
where id = object_id('CustomerTransactions')
name name length
------------------------ -------------------- -------
RowType varchar 40
ReportCategory varchar 255
Date date 3
TxnId varchar 26
TxnType varchar 255
AccountId varchar 36
AccountType varchar 21
Account varchar 255
AccountNameLong varchar 159
Amount decimal 9
Reference varchar 255
AmountPastDue decimal 9
AmountDue decimal 9
Rep varchar 255
RepRegion varchar 255
RepLevel1 varchar 255
Memo varchar -1
Phone varchar 20
CustomerName varchar 255
CustomerAccountNumber varchar 255
PaidStatus varchar 255
LastPaymentDate date 3
LastPaymentType varchar 255
LastPaymentAmount decimal 9
ReferenceNumber varchar 20
Referal varchar 255
ReferalNotes varchar 255
PurchaseNumber int 4
TotalPurchase decimal 9
AccountHierarchyL1 varchar 50
AccountHierarchyL2 varchar 50
AccountHierarchyL3 varchar 50
AccountHierarchyL4 varchar 50
AccountHierarchyL5 varchar 50
AccountOtherDisplayValue varchar 50
ReportHeader1 varchar 50
ReportHeader2 varchar 50
ReportHeader3 varchar 50
ReportHeader4 varchar 50
ReportHeader5 varchar 50
ReportHeader6 varchar 50
ReportHeader7 varchar 50
NumericDate float 8
FirstDayOfWeek date 3
LastDayOfWeek date 3
NFirstDayOfWeek float 8
NLastDayOfWeek float 8
FirstDayOfMonth date 3
LastDayOfMonth date 3
NFirstDayOfMonth float 8
NLastDayOfMonth float 8
HalfMonthStart date 3
HalfMonthEnd date 3
NHalfMonthStart float 8
NHalfMonthEnd float 8
HalfOfMonth int 4
FirstDayOfQuarter date 3
LastDayOfQuarter date 3
NFirstDayOfQuarter float 8
NLastDayOfQuarter float 8
FirstDayOfYear date 3
LastDayOfYear date 3
NFirstDayOfYear float 8
NLastDayOfYear float 8