可以在 SQL Server 2008 中重新计算行大小吗?举个例子:
declare @counter int
declare @statement nvarchar(max)
set @counter=0
drop table kua2
create table kua2(id int)
while @counter<307
begin
set @statement = N'alter table kua2 add id'+CAST(@counter as nvarchar(max))+N' nvarchar(max)'
exec (@statement)
set @statement = N'alter table kua2 drop column id'+CAST(@counter as nvarchar(max))
exec (@statement)
set @counter=@counter+1
end
alter index all on kua2 rebuild
dbcc cleantable (0,'kua2',0)
alter table kua2 add id0 int
alter table kua2 add id1 int
alter table kua2 add id2 int
alter table kua2 add id3 int
当我添加 id3 列时,我收到了关于 8060 字节的警告,但该表只有 5 个 int 列,它仍然计算行大小中删除的 nvarchar(max) 列。
唯一有帮助的是重新创建表。但出于几个原因,我不想这样做。有没有办法告诉 SQL Server 以某种方式重新计算行大小?