Эта ошибка началась, когда новый столбец (с проверочным ограничением) был добавлен в существующую таблицу. Для расследования у меня есть: -
- Скопировал таблицу на другой целевой SQL Server и получил ту же ошибку.
- Создана новая таблица с точно такой же структурой, но другим именем и скопирована без ошибок.
- Отбросил и заново создал проверочное ограничение для таблицы проблем, но все равно получаю ту же ошибку.
- Контрольная таблица dbcc ('MyTableName') с ALL_ERRORMSGS не выдает ошибок.
- dbcc checkdb в исходной и целевой базе данных не выдает ошибок.
Интересно, что пакет DTS выглядит так: -
- Скопируйте таблицу.
- Копировать данные.
- Создание ограничений
Поскольку время создания проверочного ограничения составляет 7 минут после времени создания таблицы, то есть оно создает проверочное ограничение ПОСЛЕ того, как данные были перемещены. Имеет смысл, поскольку нет необходимости проверять данные при копировании, что, вероятно, повышает производительность.
Как предполагает Годеке, я думаю, что что-то испортилось в системных таблицах, так как работает новая таблица с такими же столбцами. Даже если операторы DBCC не дают ошибок?