SQL Server - невозможно усечь таблицу, связанную с индексированным представлением - PullRequest
0 голосов
/ 24 сентября 2019

Я должен изменить хранилище данных.Сложный ETL изменяет это хранилище данных.

Я добавил индексированное представление для нескольких таблиц, чтобы упростить и ускорить процесс.Код выглядел следующим образом:

CREATE VIEW
  my_current_view WITH schemabinding
AS
SELECT ...
FROM table1 ...
WHERE ...
GROUP BY ...

CREATE UNIQUE CLUSTERED INDEX idx1 ON my_current_view (tranid)

И теперь ETL завершается ошибкой со следующим сообщением:

Выполнение запроса «таблица усеченных таблиц1» завершилось ошибкой со следующей ошибкой: «НевозможноTRUNCATE TABLE 'table1', потому что на него ссылается объект 'my_current_view'. "

Я понял, что мне нужно удалить (не добавлять) уникальный индекс, чтобы получилась усеченная таблица:

CREATE VIEW
  my_current_view WITH schemabinding
AS
SELECT ...
FROM table1 ...
WHERE ...
GROUP BY ...

Есть ли способ синхронизировать этот другой объект (таблицу, представление и т. Д.) С базовыми таблицами и с индексами?

1 Ответ

3 голосов
/ 24 сентября 2019

Возможно, это плохие новости, но индексированные представления должны использовать привязку схемы, а это не позволяет усекать таблицу.Вам придется отбросить индексированное представление, обрезать таблицу и вернуть ее обратно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...