MSSQL 2014: Fehler bei der Berechnung der eindeutigen Tabelle

Microsoft.SQLServer.2014.Unique_table_computation_failed_1_5_Rule (Rule)

Datenbanktreiber eines Clients, wie z. B. der Microsoft Access-Treiber für SQL Server, verwenden eindeutige Tabellen zur Erstellung aktualisierbarer Abfragen. Die eindeutige Tabelle identifiziert für eine gegebene SELECT-Anweisung die Tabelle, deren Zeilenwerte maximal einmal im Resultset erscheinen. Bei einer erneuten Auswahl einer Zeile aus einem Resultset reichen die Werte aus den Schlüsselspalten der eindeutigen Tabelle aus, um die Zeile zu identifizieren. Dieser Fehler wird ausgelöst, wenn der Server die eindeutige Tabelle nicht berechnen kann.

Knowledge Base article:

Zusammenfassung

Datenbanktreiber eines Clients, wie z. B. der Microsoft Access-Treiber für SQL Server, verwenden eindeutige Tabellen zur Erstellung aktualisierbarer Abfragen. Die eindeutige Tabelle identifiziert für eine gegebene SELECT-Anweisung die Tabelle, deren Zeilenwerte maximal einmal im Resultset erscheinen. Bei einer erneuten Auswahl einer Zeile aus einem Resultset reichen die Werte aus den Schlüsselspalten der eindeutigen Tabelle aus, um die Zeile zu identifizieren. Dieser Fehler wird ausgelöst, wenn der Server die eindeutige Tabelle nicht berechnen kann.

Ursachen

Dieser Fehler kann ausgelöst werden, wenn die SELECT-Abfrage ein UNION-, GROUP BY-, ROLL UP-Klausel oder andere Aggregatfunktionen verwendet. Eindeutige Tabellen sind nicht für diese Fälle definiert.

Lösungen

Schreiben Sie die Abfrage um, und vermeiden Sie dabei Formulierungen, die die Berechnung der eindeutigen Tabelle behindern. In den meisten Fehlerszenarien ist das aktualisierbare Resultset nicht implementierbar.

Parameter, die außer Kraft gesetzt werden können

Name

Beschreibung

Standardwert

Aktiviert

Aktiviert oder deaktiviert den Workflow.

Ja

Priorität

Definiert die Warnungspriorität.

1

Schweregrad

Definiert den Warnungsschweregrad.

2

Element properties:

TargetMicrosoft.SQLServer.2014.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID16959
Event Source$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2014: Fehler bei der Berechnung der eindeutigen Tabelle
{0}
Event LogApplication
CommentMom2014ID='{E8827C4D-1683-4BC1-915A-32FB2D21441B}';MOM2014GroupID={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.2014.Unique_table_computation_failed_1_5_Rule" Target="SQL2014Core!Microsoft.SQLServer.2014.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2014ID='{E8827C4D-1683-4BC1-915A-32FB2D21441B}';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>16959</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2014.Unique_table_computation_failed_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>