sql >> Databasteknik >  >> RDS >> Sqlserver

Inaktivera alla icke-klustrade index

Du kan bygga in frågorna i en select-sats, så här:

DECLARE @sql AS VARCHAR(MAX)='';

SELECT @sql = @sql + 
'ALTER INDEX ' + sys.indexes.name + ' ON  ' + sys.objects.name + ' DISABLE;' +CHAR(13)+CHAR(10)
FROM 
    sys.indexes
JOIN 
    sys.objects 
    ON sys.indexes.object_id = sys.objects.object_id
WHERE sys.indexes.type_desc = 'NONCLUSTERED'
  AND sys.objects.type_desc = 'USER_TABLE';

EXEC(@sql);

Tecken 13 och 10 är radmatning/vagnretur, så du kan kontrollera utdata genom att ersätta EXEC med PRINT , och den blir mer läsbar.



  1. Hur man summerar konton

  2. Ställa in kolumner variabelt i Mysql

  3. SQLPlus - spoolning till flera filer från PL/SQL-block

  4. oracle radera data från fjärr SQL Server-tabellen