Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL Server 2008 :Désactiver l'index sur une partition de table particulière

Les index sont généralement sur le schéma de partition. Pour le scénario dont vous parlez, vous pouvez en fait charger une nouvelle table avec le lot (structure identique, nom différent), puis utiliser la commande SWITCH pour ajouter cette table en tant que nouvelle partition dans votre table existante.

J'ai inclus le code que j'utilise pour effectuer cela, vous devrez le modifier en fonction des noms de vos tables :

DECLARE @importPart int
DECLARE @hourlyPart int

SET @importPart = 2 -- always, so long as the Import table is only made up of 1 partition

-- get the Hourly partition
SELECT 
    @hourlyPart = MAX(V.boundary_id) + 1
FROM 
    sys.partition_range_values V
JOIN    sys.partition_functions F
    ON  V.function_id = F.function_id
    AND F.name = 'pfHourly'

ALTER TABLE Import
SWITCH PARTITION @importPart
TO Hourly PARTITION @hourlyPart;