Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL Server 2008:Desabilitar o índice em uma partição de tabela específica


Os índices geralmente estão no Esquema de Partição. Para o cenário que você está falando, você pode carregar uma nova tabela com o lote (estrutura idêntica, nome diferente) e então usar o comando SWITCH para adicionar esta tabela como uma nova partição em sua tabela existente.

Eu incluí o código que uso para fazer isso, você precisará modificá-lo com base nos nomes das suas tabelas:
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;