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