Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Может ли DBCC DBREINDEX выполнять неявный ALTER TABLE при наличии PK/UK?  [new]
WinterGraveyard
Member

Откуда:
Сообщений: 63
Ситуация:
select @@version

Microsoft SQL Server 2005 - 9.00.5069.00 (X64) 
Aug 22 2012 18:02:46
Copyright (c) 1988-2005 Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1)

На нем имеется view, которая использует синоним, который ссылается на таблицу через linked server. С недавних пор периодически стали вылезать вот такие ошибки. Отказаться от использования синонима не получится, вариант с установкой CU не подходит. В принципе, это нормально лечится с помощью sp_refreshview, но смущает периодичность возникновения данной ошибки - каждый день с утра, как будто кто-то ночью альтерит таблицу, на которую ссылается синоним. При этом система, к которой относится таблица, в плане объектов БД абсолютно статична - там не ведется разработка, никто не изменяет никакие объекты. Единственное, что удалось найти - там по ночам запускается процедура перестройки индексов таблиц, внутри использующая DBCC DBREINDEX. А про последнюю я в справке прочитал вот такое:
DBCC DBREINDEX rebuilds an index for a table or all indexes defined for a table. By allowing an index to be rebuilt dynamically, indexes enforcing either PRIMARY KEY or UNIQUE constraints can be rebuilt without having to drop and re-create those constraints.

- т.е., получается, при определенных условиях выполнение этой команды чревато drop/create PK/UK, т.е. выполнением ALTER TABLE, и как следствие, возникновением той самой ошибки про change in schema version between compile time ("Compile Time") and run time ("Run Time") for table "Linked Table Name"?
21 июн 18, 11:30    [21508947]     Ответить | Цитировать Сообщить модератору
 Re: Может ли DBCC DBREINDEX выполнять неявный ALTER TABLE при наличии PK/UK?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7399
WinterGraveyard,

так используйте ALTER INDEX или поищите готовые наработки по переиндексированию.
21 июн 18, 17:46    [21510470]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить