Estou tentando mudar uma partição de tabela para uma tabela temporária com a seguinte consulta:
create partition function [PFCT_T](datetime2) as range right for values ()
create partition scheme [PSCH_T] as partition [PFCT_T] all to ([primary])
create table T(A1 datetime2 not null, A2 int not null) on [PSCH_T](A1)
create clustered columnstore index [CIX_T] on dbo.T
insert into T(A1, A2) values ('2024-01-01 00:00:00', 1)
select top 0 * into #T from T
create clustered columnstore index [CIX_#T] on #T
alter table T switch partition 1 to #T
--Results in:
--Msg 608, Level 16, State 1, Line 15
--No catalog entry found for partition ID 5620492390548766720 in database 23. The metadata is inconsistent. Run DBCC CHECKDB to check for a metadata corruption.
Não é possível mudar uma partição para uma tabela temporária (funciona com tabelas normais) ou perdi alguma coisa?
Parece que você está executando o script em um banco de dados de usuário. As tabelas temporárias são criadas no banco de dados do sistema tempdb e não podem ser usadas
SWITCH
para mover dados entre tabelas em bancos de dados diferentes.O script funcionará se você simplesmente adicionar
USE tempdb;
ao início do script, mas suspeito que sua intenção seja criar objetos permanentes em um banco de dados de usuário. Você precisará usar uma tabela permanente em vez de uma tabela temporária nesseSWITCH
caso.