0/5 (1 avis)
Snippet vu 4 821 fois - Téléchargée 28 fois
-- ============================================= -- Author: ROMELARD FABRICE -- Create date: 18-10-2006 -- Description: Script de destruction des Indexes avec un champ choisi -- ============================================= --------------------------------------------------------------------------------------------------------------------------------------- USE [MaBase] --------------------------------------------------------------------------------------------------------------------------------------- -- Spécification du champ qui doit être indexé --------------------------------------------------------------------------------------------------------------------------------------- DECLARE @NOM_CHAMP AS VARCHAR(50) SET @NOM_CHAMP = 'MonChamp' --------------------------------------------------------------------------------------------------------------------------------------- DECLARE @SQL AS VARCHAR(MAX) --------------------------------------------------------------------------------------------------------------------------------------- -- Déclaration du Curseur de sélection --------------------------------------------------------------------------------------------------------------------------------------- DECLARE TESTCURSEUR CURSOR FOR SELECT 'DROP INDEX ['+ IDX.name +'] ON ['+ SCH.name +'].['+ OBJ.name +'] WITH (ONLINE = OFF)' AS SQLCMD FROM sys.index_columns IDXC INNER JOIN sys.objects OBJ ON IDXC.object_id = OBJ.object_id INNER JOIN sys.schemas SCH ON SCH.schema_id = OBJ.schema_id INNER JOIN sys.indexes IDX ON (IDXC.object_id = IDX.object_id AND IDXC.index_id = IDX.index_id) INNER JOIN sys.columns COL ON (IDXC.column_id = COL.column_id AND OBJ.object_id = COL.object_id) WHERE (OBJ.type = 'U' OR OBJ.type = 'V') AND COL.name = @NOM_CHAMP --------------------------------------------------------------------------------------------------------------------------------------- -- Déclaration du Curseur sur la liste des indexes OPEN TESTCURSEUR FETCH NEXT FROM TESTCURSEUR INTO @SQL WHILE (@@FETCH_STATUS >= 0) BEGIN PRINT (@SQL) --EXECUTE (@SQL) FETCH NEXT FROM TESTCURSEUR INTO @SQL END --------------------------------------------------------------------------------------------------------------------------------------- -- Fermeture du Curseur CLOSE TESTCURSEUR -- Libération de la mémoire prise par le Curseur DEALLOCATE TESTCURSEUR ---------------------------------------------------------------------------------------------------------------------------------------
25 oct. 2006 à 16:41
Romelard Fabrice [MVP]
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.