【问题标题】:Modify Fill Factor of Primary Keys in all tables in MS SQL 2008 R2修改 MS SQL 2008 R2 中所有表的主键填充因子
【发布时间】:2012-09-30 14:45:18
【问题描述】:

是否有任何工作方法可以修改数据库中所有表的主键的填充因子参数?

【问题讨论】:

    标签: sql-server indexing sql-server-2008-r2 primary-key fillfactor


    【解决方案1】:

    此脚本查找所有主键,并为每个主键构建一个 ALTER INDEX 语句并执行它。

    ---- change this to your desired value ----
    DECLARE @NewFillFactor smallint = 92
    -------------------------------------------
    DECLARE @TableName varchar(300), @IndexName varchar(300), @sql varchar(max)
    
    DECLARE inds CURSOR FAST_FORWARD FOR
    SELECT TABLE_NAME, CONSTRAINT_NAME
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
    WHERE CONSTRAINT_TYPE='PRIMARY KEY'
    
    OPEN inds
    FETCH NEXT FROM inds INTO @TableName, @IndexName
    
    WHILE @@FETCH_STATUS = 0
    BEGIN
        SET @sql = 'ALTER INDEX [' + @IndexName + '] ON [dbo].[' + @TableName + '] REBUILD WITH ( FILLFACTOR = ' + cast(@NewFillFactor as varchar(3)) + ')'
        PRINT @sql
        EXEC(@sql)
        FETCH NEXT FROM inds INTO @TableName, @IndexName
    END
    
    CLOSE inds
    DEALLOCATE inds
    
    PRINT 'Done'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      相关资源
      最近更新 更多