Works With SQL Server 2008 测试的(可选)要求之一是对所有表和索引启用行级压缩。我们有一个现有的数据库,其中已经创建了很多表和索引。有没有一种简单的方法可以对所有这些表和索引启用压缩?
这是我最终根据 splattne 的建议制作的脚本。
select 'ALTER TABLE [' + name + '] REBUILD WITH (DATA_COMPRESSION = ROW);'
from sysobjects where type = 'U' -- all user tables
UNION
select 'ALTER INDEX [' + k.name + '] ON [' + t.name + '] REBUILD WITH (DATA_COMPRESSION = ROW);'
from sysobjects k
join sysobjects t on k.parent_obj = t.id
where k.type = 'K' -- all keys
AND t.type = 'U' -- all user tables