Эта ошибка возникает при попытке изменения данных в таблице с использованием внешнего ключа, указывающего на столбец, которого больше нет в указанной таблице. Простое переименование столбца не может вызвать эту ошибку. В обычных условиях столбец, на который ссылается внешний ключ, удалить нельзя, поэтому эта ошибка означает, что были выполнены неподдерживаемые прямые обновления системных таблиц.
Эта ошибка возникает при попытке изменения данных в таблице с использованием внешнего ключа, указывающего на столбец, которого больше нет в указанной таблице. Простое переименование столбца не может вызвать эту ошибку. В обычных условиях столбец, на который ссылается внешний ключ, удалить нельзя, поэтому эта ошибка означает, что были выполнены неподдерживаемые прямые обновления системных таблиц.
Если эта ошибка возникает только после перезапуска данного экземпляра SQL Server, то это может означать, что в предыдущих ссылках внешнего ключа использовались кэшированные сведения об удаленном столбце. Поэтому данный столбец мог быть удален в любой момент со времени последнего перезапуска данного экземпляра SQL Server.
Выполните следующие действия.:
Выполните инструкцию DBCC CHECKDB для базы данных, в которой находятся нужные таблицы, чтобы убедиться в отсутствии проблем с согласованностью базы данных.
Удалите существующее ограничение внешних ключей и, если необходимо, заново создайте новое ограничение на внешние ключи, которое ссылается на допустимый столбец.
Проверьте, чтобы параметр Разрешить обновления был отключен. Для получения инструкций о том, как установить эту опцию, см. раздел "Опция разрешения обновлений" электронной документации.
Название | Описание | Значение по умолчанию |
Включено | Включает или отключает рабочий процесс. | Да |
Приоритет | Определяет приоритет предупреждения. | 1 |
Серьезность | Определяет серьезность предупреждения. | 1 |
Target | Microsoft.SQLServer.2014.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 437 | ||
Event Source | $Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2014ID='{2253943F-2EDA-43EC-AA01-640E5430061F}';MOM2014GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2014.Could_not_resolve_the_referenced_column_name_in_table_1_5_Rule" Target="SQL2014Core!Microsoft.SQLServer.2014.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2014ID='{2253943F-2EDA-43EC-AA01-640E5430061F}';MOM2014GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>437</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2014.Could_not_resolve_the_referenced_column_name_in_table_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>