SQL Server在干嘛?

use tempdb
go
if  object_id( ' ta 'is  not  null
drop  table ta
go
create  table ta(id  int  identity  primary  key, col1  char( 8000), col2  char( 20), col3  varchar( 20))
go 
alter  table ta  drop  column col1
go
alter  table ta  add   col4  varchar( 1000)
go
/*
警告: 已经创建表 'ta',但是它的最大行大小超过了允许的最大字节数 8060。
    如果得到的行超过此大小限制,则对此表的 INSERT 或 UPDATE 操作将失败。
*/
-- 成功
insert  into ta
values( ' col2 '' col3 'REPLICATE( ' a ', 19))
-- 失败
insert  into ta
values( ' col2 '' col3 'REPLICATE( ' a ', 20))
/*
消息 511,级别 16,状态 1,第 1 行
不能创建大小为 8061 的行,该大小大于所允许的最大行大小 8060。
语句已终止。
*/
go
select  *  from ta
go
sp_helpindex ta
ALTER  INDEX PK__ta__3213E83F20C1E124  on ta rebuild
go
-- 成功
insert  into ta
values( ' col2 '' col3 'REPLICATE( ' a ', 20))
go
select  *  from ta

你可能感兴趣的:(SQL Server)