Soyez le premier à donner votre avis sur cette source.
Snippet vu 5 903 fois - Téléchargée 23 fois
----------------------------------------------------------------- USE [MaDataBase] ----------------------------------------------------------------- -- Spécification du champ qui doit être indexé ----------------------------------------------------------------- DECLARE @NOM_CHAMP AS VARCHAR(50) SET @NOM_CHAMP = 'MonNomDeChamp' ----------------------------------------------------------------- DECLARE @TCompleteName AS VARCHAR(500) DECLARE @SQL AS VARCHAR(MAX) DECLARE @NomIDX AS VARCHAR(500) ----------------------------------------------------------------- -- Déclaration du Curseur de sélection ----------------------------------------------------------------- DECLARE TESTCURSEUR CURSOR FOR SELECT '[IDX_'+ UPPER(TAB.TABLE_NAME) +'_'+ UPPER(@NOM_CHAMP) +']' AS TIndex, '['+ TAB.TABLE_SCHEMA +'].['+ TAB.TABLE_NAME +']' AS TCompleteName FROM INFORMATION_SCHEMA.COLUMNS COL INNER JOIN INFORMATION_SCHEMA.TABLES TAB ON (TAB.TABLE_SCHEMA = COL.TABLE_SCHEMA AND TAB.TABLE_NAME = COL.TABLE_NAME) LEFT OUTER JOIN sys.sysindexes IDX ON IDX.name = 'IDX_'+ UPPER(TAB.TABLE_NAME) +'_'+ UPPER(@NOM_CHAMP) WHERE COL.COLUMN_NAME = @NOM_CHAMP AND TAB.TABLE_TYPE = 'BASE TABLE' AND IDX.name IS NULL ----------------------------------------------------------------- -- Déclaration du Curseur sur la liste des Bases de données OPEN TESTCURSEUR FETCH NEXT FROM TESTCURSEUR INTO @NomIDX, @TCompleteName WHILE (@@FETCH_STATUS >= 0) BEGIN SET @SQL = 'CREATE NONCLUSTERED INDEX '+ @NomIDX +' ON '+ @TCompleteName +'(['+ @NOM_CHAMP +'] ASC) ' SET @SQL = @SQL +'WITH (STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ' SET @SQL = @SQL +'IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = OFF) ' SET @SQL = @SQL +'ON [PRIMARY]' EXECUTE (@SQL) FETCH NEXT FROM TESTCURSEUR INTO @NomIDX, @TCompleteName END ----------------------------------------------------------------- -- Fermeture du Curseur CLOSE TESTCURSEUR -- Libération de la mémoire prise par le Curseur DEALLOCATE TESTCURSEUR -----------------------------------------------------------------
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.