Des tables uniques sont utilisées par les pilotes clients de la base de données, notamment le pilote Microsoft Access pour SQL Server, afin de construire des requêtes pouvant être mises à jour. Pour une instruction donnée telle que SELECT, la table unique identifie la table dont les valeurs de lignes apparaissent au maximum une fois dans l'ensemble de résultats. En sélectionnant à nouveau une ligne dans un ensemble de résultats, les valeurs des colonnes clés de la table unique sont suffisantes pour identifier la ligne. Cette erreur est signalée lorsque le serveur ne peut pas calculer la table unique.
Des tables uniques sont utilisées par les pilotes clients de la base de données, notamment le pilote Microsoft Access pour SQL Server, afin de construire des requêtes pouvant être mises à jour. Pour une instruction donnée telle que SELECT, la table unique identifie la table dont les valeurs de lignes apparaissent au maximum une fois dans l'ensemble de résultats. En sélectionnant à nouveau une ligne dans un ensemble de résultats, les valeurs des colonnes clés de la table unique sont suffisantes pour identifier la ligne. Cette erreur est signalée lorsque le serveur ne peut pas calculer la table unique.
Cette erreur peut survenir lorsque la requête SELECT détient l'agrégat UNION, GROUP BY, ROLL UP ou d'autres. Les tables uniques ne sont pas définies dans ces cas précis.
Rédigez à nouveau la requête en évitant les constructions qui gênent le calcul de la table unique. Dans la plupart des scénarios d'erreur, il n'est pas possible d'implémenter le jeu de résultats pouvant être mis à jour.
Nom | Description | Valeur par défaut |
Activé |
| Oui |
Génère des alertes |
| Oui |
Priorité |
| 1 |
Severité |
| 2 |
Target | Microsoft.SQLServer.2014.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 16959 | ||
Event Source | $Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2014ID='{E8827C4D-1683-4BC1-915A-32FB2D21441B}';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.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>