Bonjour,
Pourriez-vous me dire comment recreer tous mes index de toutes mes tables dans sql serveur 2000 !
Merci.
Bonjour,
Pourriez-vous me dire comment recreer tous mes index de toutes mes tables dans sql serveur 2000 !
Merci.
Avec dbname le nom de ta base.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 USE dbname GO DECLARE @TableName sysname DECLARE @IndexName VARCHAR(100) DECLARE @indid int DECLARE cur_tblfetch CURSOR FOR SELECT name from sysobjects where xtype='U' OPEN cur_tblfetch FETCH NEXT FROM cur_tblfetch INTO @TableName WHILE @@FETCH_STATUS = 0 BEGIN DECLARE cur_indfetch CURSOR FOR SELECT indid,name FROM sysindexes WHERE id = OBJECT_ID (@TableName) and keycnt > 0 OPEN cur_indfetch FETCH NEXT FROM cur_indfetch INTO @indid,@IndexName WHILE @@FETCH_STATUS = 0 BEGIN print 'Maintenance de ' + (@TableName) + '.' + (@IndexName) IF @indid <> 255 DBCC DBREINDEX (@TableName, @IndexName) FETCH NEXT FROM cur_indfetch INTO @indid,@IndexName END CLOSE cur_indfetch DEALLOCATE cur_indfetch FETCH NEXT FROM cur_tblfetch INTO @TableName END CLOSE cur_tblfetch DEALLOCATE cur_tblfetch
A la ligne DBCC DBREINDEX, tu peux ajouter le fillfactor. Sinon, le fillfactor d'origine sera appliqué.
Merci Pour la réponse, c'est exactement ce que je cherchais.
![]()
Partager