Я пытаюсь создать модульный тест для процедуры, которая затрагивает некластеризованную таблицу columnstore.
Я создал поддельную таблицу, а затем попытался удалить и отключить индекс CStore перед вставкой тестовых данных, но когда я пытаюсь запустить тест, он всегда выдает ошибку: «Ошибка оператора INSERT, поскольку данные не могут быть обновлены в таблице с некластеризованным хранилищем столбцов. index. Рассмотрите возможность отключения индекса columnstore перед выполнением инструкции INSERT, а затем перестроение индекса columnstore после завершения INSERT"
Это соответствующий фрагмент кода в процедуре tsqlt.
EXEC [tSQLt].[FakeTable] @TableName = N'CommonDM.AccountBalances';
ALTER INDEX [IX_CS_FinanceDM_AccountBalances] ON [CommonDM].[AccountBalances] DISABLE
INSERT INTO commondm.AccountBalances
( MK_DatesID_TradeDate ,
MK_CurrenciesID_CurrencyCode ,
MK_UCRAccountsID_AccountID ,
EndOfDayAccountBalanceEUR ,
ClosingRateEURDKK ,
ClosingRateEURAC ,
DW_BatchID ,
EndOfDayAccountBalanceAC ,
RevaluationDKK ,
RevaluationEUR ,
MK_BusinessLinesID_BusinessLineID ,
MK_UCRCounterpartsID_CounterpartID
)
VALUES ( 20150325 , -- MK_DatesID_TradeDate - int
3 , -- MK_CurrenciesID_CurrencyCode - int
25891201 , -- MK_UCRAccountsID_AccountID - int
-3577.82776605942, -- EndOfDayAccountBalanceEUR - float
7.46875 , -- ClosingRateEURDKK - float
4.02910395425365 , -- ClosingRateEURAC - float
3152289, -- DW_BatchID - int
-14415.4399998685 , -- EndOfDayAccountBalanceAC - float
88.6549559991928 , -- RevaluationDKK - float
14.8043530611986 , -- RevaluationEUR - float
2 , -- MK_BusinessLinesID_BusinessLineID - int
31512216 -- MK_UCRCounterpartsID_CounterpartID - int
)
ALTER INDEX [IX_CS_FinanceDM_AccountBalances] ON [CommonDM].[AccountBalances] REBUILD
GO
после каждого оператораALTER
иINSERT
. Хотя это просто дикая догадка с моей стороны. - person TT.   schedule 10.04.2015