dan*_*ero 7 sql t-sql fillfactor azure bacpac
我必须将我的数据库演示为bacpac文件以将其导入Azure.当我尝试导出时,我得到一个错误,因为任何索引都有一个fillFactor值.
我已经找到了如何为所有索引设置fillFactor值,但是我不能指定0,值必须在1到100之间.如果我在管理工作室中更改了值,我可以将其设置为0.
问题是我有很多索引需要更改,我想通过tsql将fillFactor值更改为所有索引.
有任何想法吗?.
谢谢.
对于单个数据库中的所有表来说更简单:
   select 'ALTER INDEX ALL ON '
   + quotename(s.name) + '.' + quotename(o.name) + ' REBUILD WITH (FILLFACTOR = 99)' 
   from sys.objects o
   inner join sys.schemas s on o.schema_id = s.schema_id
   where type='u' and is_ms_shipped=0
Run Code Online (Sandbox Code Playgroud)
生成您可以复制并执行的语句。
Der*_*r U -1
ALTER INDEX yourindex ON table.column
REBUILD WITH (FILLFACTOR = 0); 
Run Code Online (Sandbox Code Playgroud)
做这个工作。0 等于 100(请参阅http://msdn.microsoft.com/en-us/library/ms177459.aspx),表示索引中不留空白。
你必须为每个索引运行这个。不过,重建可能需要相当长的时间。