MSSQL 2016: non è stato possibile risolvere il nome della colonna a cui si fa riferimento nella tabella

Microsoft.SQLServer.2016.Could_not_resolve_the_referenced_column_name_in_table_1_5_Rule (Rule)

Questo errore si verifica quando si tenta di modificare i dati di una tabella con una chiave esterna che fa riferimento a una colonna che non esiste più nella tabella di riferimento. Se una colonna viene semplicemente rinominata, questo errore non viene generato. In circostanze normali, non è possibile eliminare una colonna a cui fa riferimento una chiave esterna, pertanto questo errore potrebbe indicare che sono stati eseguiti aggiornamenti diretti e non supportati alle tabelle di sistema.

Knowledge Base article:

Riepilogo

Questo errore si verifica quando si tenta di modificare i dati di una tabella con una chiave esterna che fa riferimento a una colonna che non esiste più nella tabella di riferimento. Se una colonna viene semplicemente rinominata, questo errore non viene generato. In circostanze normali, non è possibile eliminare una colonna a cui fa riferimento una chiave esterna, pertanto questo errore potrebbe indicare che sono stati eseguiti aggiornamenti diretti e non supportati alle tabelle di sistema.

Se l'errore viene visualizzato per la prima volta soltanto dopo il riavvio dell'istanza di SQL Server, è possibile che i precedenti riferimenti della chiave esterna utilizzassero informazioni memorizzate nella cache per la colonna eliminata. La colonna potrebbe quindi essere stata rimossa in un qualsiasi momento dopo l'ultimo riavvio dell'istanza di SQL Server.

Soluzioni

Eseguire la procedura seguente:

Parametri di cui è possibile eseguire l'override

Nome

Descrizione

Valore predefinito

Abilitato

Abilita o disabilita il flusso di lavoro.

Priorità

Definisce la priorità dell'avviso.

1

Gravità

Definisce la gravità dell'avviso.

1

Element properties:

TargetMicrosoft.SQLServer.2016.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID437
Event Source$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2016: non è stato possibile risolvere il nome della colonna a cui si fa riferimento nella tabella
{0}
Event LogApplication
CommentMom2016ID='{2253943F-2EDA-43EC-AA01-640E5430061F}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2016.Could_not_resolve_the_referenced_column_name_in_table_1_5_Rule" Target="SQL2016Core!Microsoft.SQLServer.2016.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2016ID='{2253943F-2EDA-43EC-AA01-640E5430061F}';MOM2016GroupID={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="SQL2016Core!Microsoft.SQLServer.2016.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.2016.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>