Posts
242
Comments
66
Trackbacks
4
Alle Indexe einer Datenbank ermitteln und löschen

Neulich musste ich in einer Datenbank alle Indexe löschen, dabei habe ich mir mit folgenden Select-Befehl im Result-Fenster die entsprechenden Drop-Befehle generiert, diese anschliessend kopiert und als SQL-Befehle abgesetzt:

SELECT
' Drop index dbo.' + SO.[name] +'.'+ SI.[name]
FROM
    SYSOBJECTS SO
INNER JOIN
    SYSINDEXES SI
    INNER JOIN
        SYSINDEXKEYS SIK
    ON
        SIK.[id] = SI.[id]
    AND
        SIK.indid = SI.indid
        INNER JOIN
            SYSCOLUMNS SC
            INNER JOIN
                SYSTYPES ST
ON
                SC.xtype = ST.xtype
     ON
                SIK.[id] = SC.[id]
            AND
                SIK.colid = SC.colid
            ON
                SO.[id] = SI.[id]
WHERE
    SO.xtype = 'u'
AND
    SI.indid > 0
AND
    SI.indid < 255
AND
    (SI.status & 64)=0
ORDER BY
    SO.[name]
    , SI.[name]

 

posted on Friday, October 19, 2007 2:58 PM Print
Comments
No comments posted yet.

Post Comment

Title *
Name *
Email
Url
Comment *  
Please add 7 and 2 and type the answer here: