在网上找了个这个东东!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
DBCC INDEXDEFRAG (dbname, tablename, indexname)
是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 语句提供的参数数目不正确。
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
'DBCC INDEXDEFRAG(0,''?'')' 中的 0和?号各代表什么意思啊?
(
{ '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 的所有信息性消息。