当前位置: 代码迷 >> Sql Server >> 修改表结构出现异常:cause existing data to go beyond the maximum allowable table row size
  详细解决方案

修改表结构出现异常:cause existing data to go beyond the maximum allowable table row size

热度:213   发布时间:2016-04-24 10:38:39.0
修改表结构出现错误:cause existing data to go beyond the maximum allowable table row size
MSSQL 2012 修改表结构,字段 AccountTypeID 从 nvarchar(10) 到 int

IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'MyTable' AND 
COLUMN_NAME = N'AccountTypeID' AND DATA_TYPE <> 'int')
BEGIN
 ALTER TABLE MyTable ALTER COLUMN AccountTypeID int NOT NULL
END

执行结果:
Messages:

Msg 1792, Level 16, State 1, Line 89699
Alter table 'MyTable' failed because the added fixed column might cause existing data to go beyond the maximum allowable table row size of 8060 bytes.

Row Size 有限制?该 怎么解决 ?
先行谢过了
------解决方案--------------------
  官方文档 http://technet.microsoft.com/zh-cn/library/ms186981(v=sql.105).aspx
------解决方案--------------------
1行只存8K数据
------解决方案--------------------
修改前用的是nvarchar类型,所有没有啥影响,如果修改为int,单行的大小就超过8060了。 

2012包括2014 版本的sql server 都没有做这个的修改 ,参考http://msdn.microsoft.com/zh-cn/library/ms143432(v=sql.110).aspx
  相关解决方案