EXEC SP_MSFOREACHTABLE 'DBCC INDEXDEFRAG(''?'')' 老出现错误提示:你提供的参数数目不正确呢? 请前辈指点!  先感谢了!

解决方案 »

  1.   


    DBCC INDEXDEFRAG (dbname, tablename, indexname)
    是3个参数啊。
      

  2.   

    EXEC SP_MSFOREACHTABLE 'DBCC INDEXDEFRAG(0,''?'')'
      

  3.   


    前辈,执行这语句,还是提示下面的错误,再帮我找找原因吧! 先感谢前辈了哟!服务器: 消息 2583,级别 16,状态 3,行 1
    向 DBCC 语句提供的参数数目不正确。
    服务器: 消息 2583,级别 16,状态 3,行 1
    向 DBCC 语句提供的参数数目不正确。
    服务器: 消息 2583,级别 16,状态 3,行 1
    向 DBCC 语句提供的参数数目不正确。
    服务器: 消息 2583,级别 16,状态 3,行 1
    向 DBCC 语句提供的参数数目不正确。
    服务器: 消息 2583,级别 16,状态 3,行 1
    向 DBCC 语句提供的参数数目不正确。
    服务器: 消息 2583,级别 16,状态 3,行 1
    向 DBCC 语句提供的参数数目不正确。
    服务器: 消息 2583,级别 16,状态 3,行 1
    向 DBCC 语句提供的参数数目不正确。
      

  4.   

    在网上找了个这个东东!DECLARE   @table_name   sysname 
    DECLARE   @index_name   sysname 
    DECLARE   @syntax   sysname 
    DECLARE   ROY_table   CURSOR   FOR 
    SELECT   name   FROM   sysobjects   where   xtype   =   'u ' 
    OPEN   ROY_table 
    FETCH   NEXT   FROM   ROY_table   INTO   @table_name 
    WHILE   @@FETCH_STATUS   =   0   
    BEGIN 
    DECLARE   ROY_index   CURSOR   FOR 
    select   sysindexes.name   
    from   sysindexes,sysobjects   
    where   sysobjects.id   =   sysindexes.id   and   
    sysobjects.name   =   @table_name   and   
    keycnt   >   0 
    OPEN   ROY_index 
    FETCH   NEXT   FROM   ROY_index   INTO   @index_name 
    WHILE   @@FETCH_STATUS   =   0   
    BEGIN SELECT   @syntax   =   'DBCC   INDEXDEFRAG   (0,   '+@table_name+ ', '+   @index_name+ ') ' 
    EXEC   (@syntax) 
    PRINT   '数据表 '+@table_name   +   '索引 '++@index_name+ '碎片整理完成 ' 
    FETCH   NEXT   FROM   ROY_index   INTO   @index_name 
    END 
    CLOSE   ROY_index 
    DEALLOCATE   ROY_index 
    FETCH   NEXT   FROM   ROY_table   INTO   @table_name 
    END 
    CLOSE   ROY_table 
    DEALLOCATE   ROY_table
      

  5.   


    'DBCC INDEXDEFRAG(0,''?'')'  中的 0和?号各代表什么意思啊?
      

  6.   

    DBCC INDEXDEFRAG
    (
        { 'database_name' | database_id | 0 } 
            , { 'table_name' | table_id | 'view_name' | view_id } 
            , { 'index_name' | index_id } 
            , { partition_number | 0 }
    )
        [ WITH NO_INFOMSGS ] 
    'database_name' | database_id | 0 对其索引进行碎片整理的数据库。如果指定 0,则使用当前数据库。数据库名称必须符合有关标识符的规则。'table_name' | table_id | 'view_name' | view_id对其索引进行碎片整理的表或视图。表和视图的名称必须符合有关标识符的规则。'index_name' | index_id要进行碎片整理的索引的 ID 的名称。如果未指定,该语句就对指定表或视图的所有索引进行碎片整理。索引名称必须符合有关标识符的规则。 partition_number | 0 要进行碎片整理的索引的分区号。如果未指定或指定 0,该语句将对指定索引的所有分区进行碎片整理。WITH NO_INFOMSGS 取消严重级别从 0 到 10 的所有信息性消息。