Este error se produce al intentar modificar los datos de una tabla con una clave externa que hace referencia a una columna que ya no existe en la tabla a la que se hace referencia. Con solo cambiar el nombre de una columna, ya no se producirá el error. En circunstancias normales, no se puede quitar una columna a la que haga referencia una clave externa, así que este error puede indicar que se han producido actualizaciones directas de tablas de sistema no admitidas.
Si el error aparece en primer lugar tras reiniciar la instancia de SQL Server, puede indicar que las referencias de clave externa estaban usando información de caché sobre la columna que se había quitado. Por lo tanto, puede que se haya quitado la columna en algún momento desde que se reinició por última vez la instancia de SQL Server.
Siga estos pasos:
Ejecute DBCC CHECKDB para la base de datos donde residen las tablas con el fin de comprobar si existen problemas de coherencia de base de datos.
Quite la restricción de clave externa existente y, si es preciso, vuelva a crear una restricción de clave externa que haga referencia a una columna válida.
Compruebe que la opción para permitir actualizaciones esté desactivada. Para obtener instrucciones acerca de cómo configurar esta opción, vea el tema correspondiente en los Libros en pantalla.
Nombre | Descripción | Valor predeterminado |
Habilitado | Habilita o deshabilita el flujo de trabajo. | Sí |
Prioridad | Define la prioridad de la alerta. | 1 |
Gravedad | Define la gravedad de la alerta. | 1 |
Target | Microsoft.SQLServer.2008.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 437 | ||
Event Source | $Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2008ID='{2253943F-2EDA-43EC-AA01-640E5430061F}';MOM2008GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Microsoft.SQLServer.SQLDefaultAccount |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2008.Could_not_resolve_the_referenced_column_name_in_table_1_5_Rule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2008ID='{2253943F-2EDA-43EC-AA01-640E5430061F}';MOM2008GroupID={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" RunAs="SQL!Microsoft.SQLServer.SQLDefaultAccount">
<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="SQL!Microsoft.SQLServer.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.2008.Could_not_resolve_the_referenced_column_name_in_table_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>